मैं एक उपयोगकर्ता को किसी शब्द या चरित्र को दर्ज करने, उसे संग्रहीत करने और फिर इसे तब तक प्रिंट करने देता हूं, जब तक कि उपयोगकर्ता इसे फिर से प्रोग्राम से बाहर नहीं निकाल देता है। मेरा कोड इस तरह दिखता है:
#include <stdio.h>
int main()
{
char input[40];
char check[40];
int i=0;
printf("Hello!\nPlease enter a word or character:\n");
gets(input);
printf("I will now repeat this until you type it back to me.\n");
while (check != input)
{
printf("%s\n", input);
gets(check);
}
printf("Good bye!");
return 0;
}
समस्या यह है कि मैं इनपुट स्ट्रिंग का मुद्रण प्राप्त करता रहता हूं, तब भी जब उपयोगकर्ता द्वारा इनपुट (चेक) मूल (इनपुट) से मेल खाता है। क्या मैं दोनों की तुलना गलत तरीके से कर रहा हूं?
strcmp()
वापसी शून्य जब इसकी जानकारी के बराबर हैं समानता, असमानता, कम से कम, की तुलना में अधिक के लिए तार तुलना करने के लिए कम से कम या बराबर बताते हैं, और बराबर या अधिक से अधिक। सभी स्ट्रिंग तुलना समानता के लिए नहीं हैं। केस संवेदनशील तुलना फिर से अलग हैं; अन्य विशेष तुलना (डिक्शनरी ऑर्डर, उदाहरण के लिए) को अधिक विशिष्ट तुलनाकर्ताओं की आवश्यकता होती है, और अभी भी अधिक जटिल तुलनाओं के लिए अवशेष हैं।
gets()
न के बराबर है। यह C11 के बाद से मानक से भी हटा दिया गया है -> कृपया पढ़ें कि क्यों हो जाता है फ़ंक्शन इतना खतरनाक है कि इसका उपयोग नहीं किया जाना चाहिए?
gets( )
मानक से हटा दिया गया था।fgets( )
इसके बजाय उपयोग करें ।