【发布时间】:2014-03-13 19:16:55
【问题描述】:
此代码的目的是计算输入字符在输入字符串中的使用次数。
代码是这样的,它给出 false 输出 K=41 并且警告比较由于数据类型范围有限而总是 false。
int main()
{
int i,k,x=0;
char ch;
char str[1000];
printf("Write your Word!\n");
gets(str);
printf("Write character to Search\n");
scanf("%c",&ch);
x=strlen(str);
printf("%d",x);
printf("%d",k);
for(i=0;i!=x-1;i++){
if(str[i]=='ch'){
k++; }
}
printf("%d times used",k);
getch();
return 0;
}
【问题讨论】:
-
k未初始化 -
比较警告是因为
str[i]=='ch';str[i]是 1 个字符,您与 2 个字符比较。 -
未初始化是什么意思?我应该在哪里启动 k?在 if 循环中?
-
在声明中初始化
k:int i,k=0,x=0; -
@AlterMann 像你说的那样初始化了 k,但它仍然给出 0。为什么?
标签: c comparison