#include <stdio.h> int main() { char str[80]; int i, j, t, letter_b=0,letter_s=0,number=0,space=0,other=0; for(i=0; i<=80; i++) { gets(str[i]); } for(i=0; i<3; i++) for(j=0; (t=str[i][j]) != '\0'; j++) { if(t >= 'A' && t <= 'Z') letter_b++; else if(t >= 'a' && t <= 'z') letter_s++; else if(t >= '0' && t <= '9') number++; else if(t == ' ') space++; else other++; } printf("大写字母有:%d个\n", letter_b); printf("小写字母有:%d个\n", letter_s); printf("数字有:%d个\n", number); printf("空格有:%d个\n", space); printf("其它字符有:%d个\n", other); }修改这段代码
时间: 2024-03-21 14:44:20 浏览: 62
这段代码有一些问题,我来帮你修改一下:
```c
#include <stdio.h>
int main() {
char str[80];
int i, j, t, letter_b=0, letter_s=0, number=0, space=0, other=0;
printf("请输入字符串:\n");
fgets(str, sizeof(str), stdin); // 使用 fgets 获取输入的字符串
for(i=0; str[i]!='\0'; i++) {
t = str[i]; // 取出当前字符
if(t >= 'A' && t <= 'Z')
letter_b++;
else if(t >= 'a' && t <= 'z')
letter_s++;
else if(t >= '0' && t <= '9')
number++;
else if(t == ' ')
space++;
else
other++;
}
printf("大写字母有:%d个\n", letter_b);
printf("小写字母有:%d个\n", letter_s);
printf("数字有:%d个\n", number);
printf("空格有:%d个\n", space);
printf("其它字符有:%d个\n", other);
return 0;
}
```
修改后的代码使用 `fgets` 获取用户输入的字符串,并对字符串中的字符进行统计。同时,修改了循环的终止条件,使其在遇到字符串结尾的 '\0' 字符时停止循环。
阅读全文