strcmp और Comparison
Strings की तुलना करना
strcmp और Comparison, CoddyKit पर C Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह C Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
स्ट्रिंग की तुलना
C में स्ट्रिंग की तुलना == से नहीं कर सकते। यह contents की नहीं, केवल दो arrays के addresses की तुलना करता है।
characters की एक-एक करके तुलना करने के लिए <string.h> का strcmp(a, b) इस्तेमाल करें।
#include <stdio.h>
#include <string.h>
int main(void) {
char a[] = "apple";
char b[] = "apple";
if (strcmp(a, b) == 0)
printf("Strings are equal\n");
return 0;
}strcmp क्या लौटाता है
strcmp एक int लौटाता है:
- स्ट्रिंग समान होने पर 0
- यदि
aमें पहला अलग char,bके char से छोटा हो, तो negative मान - अन्यथा positive मान
#include <stdio.h>
#include <string.h>
int main(void) {
printf("%d\n", strcmp("abc", "abc"));
printf("%d\n", strcmp("abc", "abd"));
printf("%d\n", strcmp("abd", "abc"));
return 0;
}शून्य यानी समान वाली गलती
एक आम bug है: if (strcmp(a, b)) लिखना और इसे समानता समझना।
याद रखें कि समान स्ट्रिंग पर strcmp 0 (falsy) लौटाता है, इसलिए यह condition तब true होती है जब वे अलग हों। हमेशा 0 से स्पष्ट रूप से तुलना करें।
#include <stdio.h>
#include <string.h>
int main(void) {
char input[] = "yes";
if (strcmp(input, "yes") == 0)
printf("Confirmed\n");
else
printf("Not confirmed\n");
return 0;
}तुलना कैसे काम करती है
strcmp, characters के ASCII (byte) values की एक-एक करके तुलना करता है, जब तक वे अलग न हों या terminator न मिल जाए।
बड़े अक्षर (A=65) छोटे अक्षरों (a=97) से पहले आते हैं, इसलिए "Zebra", "apple" से पहले sort होता है।
#include <stdio.h>
#include <string.h>
int main(void) {
printf("%d\n", strcmp("Zebra", "apple"));
return 0;
}शब्दकोशीय क्रम
strcmp का sign आपको स्ट्रिंग को alphabetical क्रम में sort करने देता है। negative result का अर्थ है कि पहला argument dictionary order में पहले आता है।
#include <stdio.h>
#include <string.h>
int main(void) {
const char *x = "banana";
const char *y = "cherry";
if (strcmp(x, y) < 0)
printf("%s comes before %s\n", x, y);
return 0;
}strncmp: सीमित तुलना
strncmp(a, b, n) अधिकतम n characters की तुलना करता है। यह prefixes जाँचने के लिए उपयोगी है।
उदाहरण के लिए, यह जाँचना कि कोई स्ट्रिंग "http" से शुरू होती है या नहीं।
#include <stdio.h>
#include <string.h>
int main(void) {
char url[] = "https://site.com";
if (strncmp(url, "https", 5) == 0)
printf("Secure URL\n");
return 0;
}अक्षर-आकार की अनदेखी करके तुलना
मानक strcmp uppercase और lowercase में अंतर करता है। अक्षर-आकार को अनदेखा करने के लिए तुलना करते समय <ctype.h> के tolower से characters बदल सकते हैं।
(POSIX systems strcasecmp भी देते हैं, लेकिन यह C standard का हिस्सा नहीं है।)
#include <stdio.h>
#include <ctype.h>
int ci_cmp(const char *a, const char *b) {
while (*a && (tolower(*a) == tolower(*b))) { a++; b++; }
return tolower(*a) - tolower(*b);
}
int main(void) {
printf("%d\n", ci_cmp("Hello", "hello"));
return 0;
}तुलना से खोज करना
आप स्ट्रिंग के array पर loop चला सकते हैं और किसी match को खोजने के लिए strcmp इस्तेमाल कर सकते हैं, जैसे किसी सरल lookup table में।
#include <stdio.h>
#include <string.h>
int main(void) {
const char *fruits[] = {"apple", "banana", "cherry"};
const char *target = "banana";
for (int i = 0; i < 3; i++) {
if (strcmp(fruits[i], target) == 0) {
printf("Found at index %d\n", i);
}
}
return 0;
}स्ट्रिंग को sort करना
strcmp को आधार बनाकर आप स्ट्रिंग arrays को sort कर सकते हैं। यहाँ order के आधार पर pointers को बदलने वाला एक छोटा bubble sort है।
#include <stdio.h>
#include <string.h>
int main(void) {
const char *names[] = {"Carol", "Alice", "Bob"};
int n = 3;
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - 1 - i; j++)
if (strcmp(names[j], names[j+1]) > 0) {
const char *t = names[j];
names[j] = names[j+1];
names[j+1] = t;
}
for (int i = 0; i < n; i++) printf("%s\n", names[i]);
return 0;
}सीधे subtraction से तुलना न करें
आप a[i] - b[i] से अपनी तुलना लिखने की कोशिश कर सकते हैं, लेकिन raw char values के साथ sign का व्यवहार implementation-defined होता है और overflow हो सकता है।
Library के strcmp को प्राथमिकता दें, जो इन edge cases को सही ढंग से संभालता है।
#include <stdio.h>
#include <string.h>
int main(void) {
int r = strcmp("file1", "file2");
printf("Result sign: %s\n", r < 0 ? "negative" : "non-negative");
return 0;
}उपयोगकर्ता input की तुलना
वास्तविक उपयोग का एक उदाहरण password या menu choice जाँचना है। Input पढ़ें, फिर strcmp से उसकी तुलना अपेक्षित values से करें।
समानता जाँचने के लिए हमेशा 0 से तुलना करें।
#include <stdio.h>
#include <string.h>
int main(void) {
char choice[] = "quit";
if (strcmp(choice, "quit") == 0)
printf("Exiting program\n");
return 0;
}त्वरित जाँच
strcmp के return values की अपनी समझ जाँचें।
पुनरावलोकन
आपने C में स्ट्रिंग की तुलना करना सीखा:
- strcmp समानता के लिए 0 और क्रम के लिए negative या positive लौटाता है।
- स्ट्रिंग पर कभी
==इस्तेमाल न करें; यह addresses की तुलना करता है। - समानता के लिए हमेशा
== 0जाँचें (शून्य यानी falsy वाली गलती)। - strncmp prefix की तुलना करता है; अक्षर-आकार से स्वतंत्र तुलना के लिए
tolowerचाहिए।
एआई शिक्षक के साथ C सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 39
- पाठ
- 144
अक्सर पूछे जाने वाले प्रश्न
क्या “strcmp और Comparison” पाठ निःशुल्क है?
हाँ—“strcmp और Comparison” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और C Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“strcmp और Comparison” में मैं क्या सीखूँगा?
Strings की तुलना करना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या C Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“strcmp और Comparison” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस C Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर C Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- strlen, strcpy, strcat
- strcmp और Comparison
- strtok और Tokenizing
- memcpy और memset