🟡 Intermediate · Lesson 22
Strings
String क्या है?
C में Java या Python की तरह built-in string type नहीं है। C में string simply एक character array है जो special null character '\\0' से end होती है। यह null character string का अंत बताता है।
Memory Layout
char name[] = "Gagan"; // Memory: G a g a n \\0 //Index: 0 1 2 3 4 5 // \\0 automatically add होता है!
💡 Size = Length + 1
हमेशा string length से एक byte बड़ा char array declare करें (null terminator के लिए)। "Hello" (5 chars) के लिए char str[6] declare करें।
Declare और Initialize
C Language
char name[] = "Gagan"; // Auto size = 6 char city[50] = "Aligarh"; // 50 chars की capacity char input[100]; // User input के लिए buffer
⚠️ = से String Copy नहीं होती!
Declaration के बाद name = "Rahul" नहीं चलेगा। strcpy(name, "Rahul") use करें।
String Input और Output
C Language
char name[50], sentence[200]; // scanf — space तक ही पढ़ता है (एक word) scanf("%s", name); // char array में & की ज़रूरत नहीं! printf("%s\\n", name); // fgets — पूरी line पढ़ता है (spaces भी) — SAFE fgets(sentence, sizeof(sentence), stdin); puts(sentence); // puts automatically \\n add करता है
String Functions (string.h)
#include <string.h> include करें।
Standard C Note
strrev(), strupr() और strlwr() standard C functions नहीं हैं। Portable programs के लिए manual loops use करें।
C Language – String Functions
char s1[50] = "Namaste", s2[50] = "Duniya"; printf("%d\\n", (int)strlen(s1)); // 7 — length strcat(s1, " "); strcat(s1, s2); // "Namaste Duniya" strcpy(s2, "CodingEasily"); // s2 में copy printf("%d\\n", strcmp(s1, s2)); // 0 = equal, non-zero = unequal
| Function | काम |
|---|---|
strlen(s) | String की length (\\0 छोड़कर) |
strcpy(d,s) | s को d में copy करना |
strcat(d,s) | s को d के अंत में जोड़ना |
strcmp(s1,s2) | Compare: 0=equal, <0=s1 छोटा, >0=s1 बड़ा |
strchr(s,ch) | Character search करना |
strstr(s,sub) | Substring search करना |
Programs
C Language – Palindrome Check
#include <stdio.h> #include <string.h> int main() { char str[100], rev[100]; scanf("%s", str); strcpy(rev, str); int i = 0, j = strlen(rev) - 1; while (i < j) { char temp = rev[i]; rev[i] = rev[j]; rev[j] = temp; i++; j--; } if(strcmp(str,rev)==0) printf("Palindrome hai!\\n"); else printf("Palindrome nahi hai\\n"); return 0; }
सारांश
- C में strings =
'\\0'से end होने वालेchararrays - हमेशा
'\\0'के लिए एक extra byte allocate करें - Spaces सहित input के लिए
fgets()use करें - String functions के लिए
<string.h>include करें - Key functions:
strlen,strcpy,strcat,strcmp
अक्सर पूछे जाने वाले प्रश्न (FAQ)
C में string क्या है?
C में string characters का एक array है जो विशेष null character
'\0' से खत्म होता है, जो दर्शाता है कि text कहाँ रुकता है। जैसे char name[] = "Amit"; पाँच characters रखता है: चार अक्षर और terminating null।C string में null terminator क्या है?
Null terminator वह character
'\0' है जो हर string literal के अंत में अपने आप रखा जाता है। यह string functions को बताता है कि text कहाँ खत्म होता है, इसीलिए character array में दिखने वाले characters के अलावा उसके लिए भी जगह होनी चाहिए।C में spaces वाली string कैसे पढ़ें?
scanf("%s", ...) पहले space पर रुक जाता है, तो यह केवल एक शब्द पढ़ता है। Spaces सहित पूरी line पढ़ने को आप fgets(str, size, stdin) इस्तेमाल करते हैं, जो newline तक या buffer भरने तक पढ़ता है और overflow के विरुद्ध ज़्यादा सुरक्षित भी है।C में string की length कैसे निकालें?
आप
<string.h> से strlen इस्तेमाल करते हैं, जो null terminator तक (पर उसे छोड़कर) characters गिनता है। तो strlen("Amit") 4 लौटाता है, भले array खुद '\0' सहित पाँच bytes इस्तेमाल करे।C में character array और string में क्या अंतर है?
हर C string एक character array है, पर character array तभी सही string है जब वह null terminator से खत्म हो। अगर आप array को characters से भरें और
'\0' भूल जाएँ, string functions अंत के पार पढ़ेंगे और गड़बड़ करेंगे।💻 लाइव कोड एडिटर
इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.