我正在尝试将 char* 的内容与字符串进行比较。我可以打印内容,但无法比较它们。
#include<stdio.h>
int input(char * x){
int i,j = 0;
char myArray[10];
x = myArray;
scanf("%s", x);
for(x; *x !='\0'; x++){
if(*x == "ne"){
printf("%d",1);
return 0;
}
}
}
OP的代码很好地迭代了x
...
for(x; *x !='\0'; x++){
...但随后尝试比较每个char
of x
到地址"ne"
.
if(*x == "ne"){ // bad code
比较 2 所指向的字符串char *
,可以自己制作strcmp()
.
注意真实的strcmp()
当字符串匹配时返回 0,或者返回正值或负值,具体取决于哪个“更大”。 OP似乎只需要进行相等或不相等的比较。
// Return 1 if the same
int my_streq(const char *s1, const char *s2) {
while (*s1 == *s2 && *s1) {
s1++;
s2++;
}
return *s1 == *s2;
}
int readinput(char * x) {
....
if (my_streq(x, "ne")) {
printf("%d",1);
return 0;
}
....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)