【发布时间】:2018-02-03 12:40:39
【问题描述】:
卡在数组和字符串与 strcmp c 比较
为什么它不起作用?
编译器卡在if(strcmp(c,ch[i]) == 0){
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char ch[]="asdfghjkl";
char c;
int n=sizeof(ch)/sizeof(char);
scanf("%c",&c);
for(int i=0;i<n;i++){
if(strcmp(c,ch[i]) == 0){
printf("%c is in %d\n",c,i+1);
break;
}else if(i==n-1){
printf("%c not fond\n",c);
}
}
return 0;
}
【问题讨论】:
-
strcmp接受两个 字符串 作为参数。您正在传递一个char和一个字符串。你的编译器不抱怨吗?阅读How to debug small programs。 -
strcmp函数用于比较字符串。你想比较字符。 -
c的类型是char(一个字符,而不是字符串)。strcmp需要char *。 -
也许你应该直接比较它们?
c == ch[i] -
请minimal reproducible example 说明预期结果是什么。
strchr怎么了?
标签: c arrays if-statement char strcmp