解题思路:
1)如果输入字符串,我们可以根据其结尾的'\0'代表是否输入完成注意事项:
2)可以使用scanf,配合字符集匹配来完成,[ ]: 方括号表示一个字符类,它匹配方括号内的任意一个字符。如果匹配则就会继续读取,^\n表示匹配除了换行符之外的所有字符,包括空格
3)也可以使用fgets()函数,fgets() 会读取指定的文件流中的字符,直到遇到换行符 '\n'、文件结束符 EOF,并在字符串的末尾添加一个 null 字符 '\0
参考代码:
#include<stdio.h>
#define CHAR_ARRAY_MAX 255
int main()
{
// char string[CHAR_ARRAY_MAX];
char string[CHAR_ARRAY_MAX];
int digital_number = 0;
// 用下面哪一个都行
// scanf("%[^\n]", string);
fgets(string, sizeof(string), stdin);
for (int i = 0; string[i] != '\0'; i++)
{
if (string[i] >= 48 && string[i] <= 57)
{
digital_number++;
}
}
printf("%d\n", digital_number);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复