C语言这个while循环为什么第一次输入一个‘!’并没有结束运行?

char str[50]; while (scanf("%s", str)){ if (str[0] == '!') break; printf("%s\n", str); }

判断字符串相等不能用==,需要用strcmp函数比较if (strcmp(str[0], "#") == 0)
while 是一个循环体,退出循环体的方法有:
(1)循环体条件 不成立,如:while( a>0); 当 a≤0 的时候,条件 a>0不成立,while 循环结束,退出 while 循环
(2)在循环体内使用无条件跳出语句(break),如 while(1){if(b>5)break;}当 b>5 的时候,程序执行 break ,跳出 while 循环体,循环体被结束。
(3)在循环体内使用 函数返回 语句(return),如 while(1){if(c>8) return (XXX);},当 c>8的时候,程序执行 return,退出函数返回到上级函数。其中返回值 XXX 需要根据 函数类型进行返回。
如 int 型函数 int fun(),XXX 应为 int型,空返回值函数 void fun(),XXX 可以省略。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-14

我在网页链接上测试你这段代码,是可以的。

相似回答