Questions tagged «strcmp»

8
如何正确比较字符串?
我试图获得一个程序,让用户输入单词或字符,存储它,然后打印它,直到用户再次键入它,退出程序。我的代码如下所示: #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; } 问题是,即使用户输入(检查)与原始输入(输入)匹配,我仍会继续打印输入字符串。我是否错误地比较了两者?
182 c  string  strcmp 


4
strcasecmp算法有缺陷吗?
我试图strcasecmp在C中重新实现该功能,并且发现比较过程中似乎存在不一致之处。 从 man strcmp strcmp()函数比较两个字符串s1和s2。不考虑语言环境(有关语言环境的比较,请参阅strcoll(3))。如果分别找到s1小于,匹配或大于s2,则它返回小于,等于或大于零的整数。 从 man strcasecmp strcasecmp()函数对字符串s1和s2进行逐字节比较,而忽略字符的大小写。如果分别找到s1小于,匹配或大于s2,则它返回小于,等于或大于零的整数。 int strcmp(const char *s1, const char *s2); int strcasecmp(const char *s1, const char *s2); 鉴于此信息,我不理解以下代码的结果: #include <stdio.h> #include <string.h> int main() { // ASCII values // 'A' = 65 // '_' = 95 // 'a' = 97 printf("%i\n", strcmp("A", "_")); printf("%i\n", …
34 c  strcmp 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.