将char *与没有strcmp的字符串进行比较

时间:2016-06-28 22:44:17

标签: c

我正在尝试将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;
        }
    } 
}

1 个答案:

答案 0 :(得分:2)

OP的代码很好地遍历x ...

for(x; *x !='\0'; x++){

...但随后尝试将char的每个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;
  }
  ....
}