c语言 第19课 动动手第一题 实现strncmp函数的功能
#include <stdio.h>intmain()
{
char a={};
char b={};
int ch,i,num;
printf("请输入第一个字符串:");
for(i=0;a='\n';i++)
{
a=getchar(); //为什么不能这么写呢,我输入asd再按回车,字符串应该"a" "s" "d" "\n",在for循环中第一次判断的条件是a(我试了一下系统a打印出来等于0),第二次a='a',第三次a='s',第四次a='d',第五次a='\n',第五次的时候不是不满足for循环的条件了吗,为什么我一直按回车都是没反应呢?
}
printf("请输入第二个字符串:");
ch=0;
for(i=0;ch!='\n';i++)
{
ch=getchar();
b=ch;
}
printf("请输入比较的字符个数:");
scanf("%d",&num);
i=0;
while(i<num)
{
if(a!=b)
{
break;
}
i++;
}
printf("比较的结果是:%d\n",a-b);
return 0;
} 还是老问题
for(i=0;a!='\n';i++) 学编程这么不认真?
ckblt 发表于 2022-2-10 18:19
还是老问题
我改过来了,还是按回车没反应 人造人 发表于 2022-2-10 18:22
学编程这么不认真?
用另一种思路不小心多删了个! 投入就放过 发表于 2022-2-10 21:09
我改过来了,还是按回车没反应
试试for(i=0;a!='\n';i++) ckblt 发表于 2022-2-10 21:22
试试
可以了为什么-1就行了呢{:10_291:} 先判断,再执行
如果是 a!='\n' 的话,
那每一次判断的结果都是false,因为a总是'\0'。 ckblt 发表于 2022-2-10 21:54
先判断,再执行
如果是 a!='\n' 的话,
感谢感谢!
页:
[1]