#include<stdio.h> int main(){ char s[41]; gets(s); int x,y,z,m; x=y=z=m=0; while(s!='\0'){ if(*s<='z'&&*s>='a')x++; if(*s<='A'&&*s>='Z') if(*s==' ') if(*s<='0'&&*s>='9') s++; } return 0; }
时间: 2024-02-22 21:55:00 浏览: 71
这段代码有一些问题,我看到你使用了 gets 函数来读取字符串,但是这个函数很容易导致缓冲区溢出,推荐使用 fgets 函数。另外在 while 循环中你使用的判断条件是 `s!='\0'`,实际上应该是 `*s!='\0'`,因为 s 是一个字符数组,需要使用指针来访问每个字符。此外,在 if 条件语句中的判断条件也有问题,需要根据题目要求来修正。
以下是修正后的代码:
```
#include <stdio.h>
int main() {
char s[41];
fgets(s, 41, stdin);
int x = 0, y = 0, z = 0, m = 0;
char *p = s;
while (*p != '\0') {
if (*p >= 'a' && *p <= 'z') {
x++;
} else if (*p >= 'A' && *p <= 'Z') {
y++;
} else if (*p >= '0' && *p <= '9') {
z++;
} else if (*p == ' ') {
m++;
}
p++;
}
printf("%d %d %d %d\n", x, y, z, m);
return 0;
}
```
这段代码的功能是读入一个字符串,统计其中小写字母、大写字母、数字和空格的个数,最后输出这些个数。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)