📏
Strings

string.h Functions

strlen, strcpy, strcat, strcmp
💡 <string.h> ek toolbox hai jisme string ke saath kaam karne ke ready-made औzaar (tools) hain — length naapna, copy karna, jodna, compare karna — bina khud har baar loop likhe.

strlen(str) string ki length count karta hai (\0 se pehle tak ke characters, \0 khud count nahi hota). strcpy(dest, src) ek string ko doosre mein copy karta hai. strcat(dest, src) do strings ko jodta hai (dest ke end mein src add karta hai). strcmp(s1, s2) do strings ko compare karta hai — 0 return karta hai agar equal hon.

strcmp() Java ke .equals() jaisa hai, == operator jaisa nahi — C mein == strings ko compare karne ke liye kabhi use nahi karo, wo sirf pointers (addresses) compare karega, content nahi.

#include <string.h>

char s1[20] = "Hello";
char s2[] = "World";

printf("%lu\n", strlen(s1));   // 5

strcat(s1, s2);                 // s1 ab "HelloWorld"
printf("%s\n", s1);

if (strcmp(s1, "HelloWorld") == 0) {
  printf("Match!\n");          // ye chalega
}

char s3[20];
strcpy(s3, "Copied");
printf("%s\n", s3);            // Copied
📏
<string.h> ek toolbox hai jisme string ke saath kaam karne ke ready-made औzaar (tools) hain — length naapna, copy karna, jodna, compare karna — bina khud har baar loop likhe.
1 / 2
⚡ Quick Recap
  • strlen = length, strcpy = copy, strcat = jodo, strcmp = compare
  • strcmp() == 0 ka matlab hai strings equal hain
  • == operator strings ke liye kaam nahi karta — addresses compare karta hai
On this page (2 subtopics)

strchr(str, ch) ek character dhundta hai string mein aur uska pointer return karta hai (ya NULL agar na mile). strstr(str, substr) ek poora substring dhundta hai — dono search operations ke liye bahut common hain.

char *sentence = "Hello World";

char *p1 = strchr(sentence, 'W');
if (p1 != NULL) printf("Found at: %s\n", p1); // "World"

char *p2 = strstr(sentence, "World");
if (p2 != NULL) printf("Substring found!\n"); // chalega

char *p3 = strstr(sentence, "xyz");
printf("%s\n", p3 == NULL ? "Not found" : "Found"); // "Not found"

sprintf(dest, format, ...) printf() jaisa hi hai, lekin output screen par nahi, ek string mein jaata hai — numbers ko strings mein convert karne ya multiple values ko ek formatted string mein combine karne ke liye useful. sscanf(str, format, ...) ulta kaam karta hai — string se values parse karta hai.

char buffer[50];
int age = 25;
sprintf(buffer, "Age: %d years", age);
printf("%s\n", buffer);  // "Age: 25 years"

char input[] = "John,25";
char name[20];
int parsedAge;
sscanf(input, "%[^,],%d", name, &parsedAge);
printf("%s is %d\n", name, parsedAge);  // "John is 25"
💡Tip: sprintf() se buffer overflow ho sakta hai agar destination bahut chhota ho — modern code mein snprintf(dest, size, ...) use karo jo ek size limit bhi leta hai, safer hai.