题目描述
解决问题:输入一行字符(字符个数不多于80),统计其中空格的个数
输入格式:一行字符(字符个数不多于80)
输出格式:一个正整数,代表空格的个数
样例输入:abc e f gh
样例输出:4
案例代码
#include <stdio.h>
int main() {
char str[81];
int count = 0;
fgets(str, 81, stdin); // 从标准输入读入一行字符
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ') {
count++;
}
}
printf("%d", count);
return 0;
}
- 声明一个字符数组
str
,大小为 81,用来存储输入的一行字符。因为字符个数不超过 80,所以数组大小要多分配一个空间放置字符串结尾符\0
。 - 使用
fgets()
函数从标准输入读入一行字符,下面是该函数的原型:char *fgets(char *str, int n, FILE *stream)
。它的作用是从stream
中读入字符,遇到换行符或读够了n-1
个字符就自动停止,读入的字符存储在str
中,并自动在字符串结尾添加\0
字符,返回值是str
。 - 使用
for
循环遍历字符串str
,如果当前字符是空格,计数器count
加一。 - 输出计数器
count
的值。
注意:使用 fgets()
函数可以避免因输入字符过长导致缓冲区溢出的问题。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END