引入问题:统计数字个数
接收输入的一行字符,统计出字符串中包含数字的个数。
输入格式:
输入一行任意的字符串,可以包含包含数字、字母和特殊字符,也可以不包括
输出格式:
输出输入字符串中数字的个数
输入样例1:
在这里给出一组输入。例如:
hello
输出样例1:
在这里给出相应的输出。例如:
0
现给出2种方法:
1.
#include <stdio.h>
#include <stdlib.h>
int main(){
char s[100];
int i=0,b=0;
gets(s);
while (s[i]!='\0'){ //注意
i++;
if (s[i]>=48 && s[i]<=57){
b++;
}
}
printf("%d",b);
return 0;
}
2.
#include <stdio.h>
int main()
{
char c;
int digit=0;
while ((c=getchar())!=EOF) //注意
{
if (c >= '0' && c <= '9'){
digit++;
}
}
printf("%d",digit);
return 0;
}
为什么两种方法里while的循环终止条件不同,且不能互换,s[i]的'\0'要是换成了EOF显示答案错误,getchar()的EOF要是换成了'\0'显示运行超时
由此引起了对while循环终止条件的思考,在一些要连续输入直到满足特定条件才跳出循环。
问下都有哪些符号或者常量等经常被用作连续输入循环判断语句里的终止条件?
'\n'可以用作终止符吗?(潜意识里总是会先打个'\n'试试)最好有具体例子