String Initialization using Character Array in Hindi
/ BCA / Programming with C and CPP
String Initialization and Input Methods in C in Hindi
String Initialization using Character Array in Hindi
What is String in C Language?
C भाषा में string एक character array होता है, जो अक्षरों (characters) की एक श्रृंखला (sequence) को संग्रहित करता है। C में string को विशेष रूप से null character (`\0`) के साथ end किया जाता है, जिससे compiler यह समझता है कि string कहाँ समाप्त हो रही है।
Character Array से String Initialization कैसे करते हैं?
जब हम character array का उपयोग करके string को initialize करते हैं, तो हमें हर character को manually define करना होता है और अंत में एक null character `\0` देना होता है।
// Character array द्वारा string initialization
char name[6] = {'R', 'a', 'm', 'e', 's', 'h'};
ऊपर दिए गए उदाहरण में, हमने `Ramesh` नाम को character by character initialize किया है लेकिन इसमें null character `\0` नहीं है। इसलिए यह सही तरीके से string नहीं माना जाएगा।
// सही तरीका जिसमें null character शामिल हो
char name[7] = {'R', 'a', 'm', 'e', 's', 'h', '\0'};
अब यह एक valid string मानी जाएगी क्योंकि यह null character से समाप्त हो रही है।
Character Array का Size क्यों Important है?
- यदि हम size कम देंगे और null character शामिल नहीं करेंगे, तो output unpredictable हो सकता है।
- Size हमेशा characters की संख्या +1 (null character के लिए) होना चाहिए।
Character Array से String Initialize करने के लाभ
- यह हमें प्रत्येक character को control करने का मौका देता है।
- Memory के allocation को manually manage किया जा सकता है।
Direct String Initialization in C in Hindi
Direct Initialization क्या है?
C भाषा में हम सीधे एक character array को एक string literal से initialize कर सकते हैं। इसमें null character अपने आप अंत में जोड़ दिया जाता है।
char name[] = "Ramesh";
ऊपर वाले example में `"Ramesh"` string literal है जो अपने आप null character (`\0`) के साथ आता है। इसका size automatic 7 (6 characters + 1 null character) हो जाता है।
Direct Initialization के लाभ
- Code छोटा और readable बनता है।
- Null character की चिंता नहीं करनी पड़ती।
- Memory का automatic allocation होता है।
Example Program:
#include <stdio.h>
int main() {
char name[] = "Sita";
printf("Name is: %s", name);
return 0;
}
Output: Name is: Sita
String Input using gets() and scanf() in Hindi
scanf() से string input कैसे लेते हैं?
C में `scanf()` का उपयोग करके हम string को input कर सकते हैं, लेकिन यह केवल पहले space तक का data लेता है।
#include <stdio.h>
int main() {
char name[20];
printf("Enter your name: ");
scanf("%s", name);
printf("Your name is: %s", name);
return 0;
}
यदि हम input में space देंगे, जैसे "Ram Kumar", तो सिर्फ "Ram" ही input होगा।
gets() function का उपयोग
`gets()` function पूरा string (including spaces) को input करने की अनुमति देता है।
#include <stdio.h>
int main() {
char name[30];
printf("Enter your full name: ");
gets(name);
printf("Full name is: %s", name);
return 0;
}
यह function spaces को भी input कर सकता है, लेकिन इसका उपयोग discouraged किया जाता है क्योंकि यह buffer overflow की समस्या पैदा कर सकता है।
gets() vs scanf()
| Function | Space को handle करता है? | Security |
|---|---|---|
| scanf() | नहीं | सुरक्षित |
| gets() | हाँ | असुरक्षित (buffer overflow issue) |
Recommended Alternative
C11 से `gets()` को हटा दिया गया है। इसकी जगह `fgets()` का उपयोग करना चाहिए:
fgets(name, sizeof(name), stdin);
String Initialization Errors and Warnings in Hindi
Common Errors:
- Null character भूल जाना – यदि आप character array में `\0` देना भूल जाते हैं, तो string undefined behavior देगा।
- Size से ज़्यादा characters – अगर array का size कम है और string बड़ा है, तो memory corruption हो सकता है।
// गलत तरीका
char name[5] = "Ramesh"; // Error: 6 characters + \0 > size 5
Compiler Warning Example:
warning: initializer-string for array of chars is too long
String Assignment Error:
C में strings को directly assign नहीं किया जा सकता।
char name[10];
name = "Sita"; // ❌ गलत तरीका
सही तरीका:
char name[] = "Sita"; // ✅ सही तरीका
How to Fix Errors:
- Always add null character manually (if not using string literal).
- Use correct array size (length + 1).
- Do not assign string after declaration without using strcpy().
Using strcpy() Function:
#include <string.h>
char name[10];
strcpy(name, "Sita");
Final Tips:
- String literals use करें जब direct initialization करना हो।
- scanf() simple strings के लिए, और fgets() full lines के लिए उपयोग करें।
- String size हमेशा ध्यान रखें, overflow से बचें।
- `gets()` से बचें, ये पुराना और असुरक्षित तरीका है।
FAQs
strcpy(name, "Ravi");