string.h Functions
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- 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
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"