"任意输入一串字符保存在字符数组中,求期中字母,数字及其他字符的个数。空格算其他字符。例如: char s[100];gets(s);比如输入了:my age is 28 结果显示为:字母7个,数字2个,其他3个。 "1.代码比单元格长没有关系。2.每个变量要用一条输入语句。且必须按题目要求顺序输入。3.只能使用scanf()或者gets()输入
时间: 2024-02-09 08:13:37 浏览: 47
好的,以下是实现该功能的代码:
```
#include <stdio.h>
int main() {
char s[100];
int i, letter_count = 0, digit_count = 0, other_count = 0;
gets(s);
for (i = 0; s[i] != '\0'; i++) {
if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) {
letter_count++;
} else if (s[i] >= '0' && s[i] <= '9') {
digit_count++;
} else {
other_count++;
}
}
printf("字母%d个,数字%d个,其他%d个。", letter_count, digit_count, other_count);
return 0;
}
```
解释一下代码:
首先定义一个字符数组 `s` 用于存储输入的字符串,同时定义三个整型变量 `letter_count`、`digit_count` 和 `other_count` 用于统计字母、数字和其他字符的个数。
接着使用 `gets()` 函数读取输入的字符串。
然后使用 `for` 循环遍历字符串中的每个字符,判断该字符是否为字母、数字或其他字符,分别对应上面提到的三个计数变量进行增加。
最后使用 `printf()` 函数输出统计结果即可。
需要注意的是,在输入字符串时,我们使用了 `gets()` 函数,这个函数并不安全,容易导致缓冲区溢出等问题,实际开发中应该使用更安全的输入函数。