#include <stdio.h> #include <ctype.h> int main() { char str[80]; int i, count = 0; printf("Input a string:"); gets(str); for (i = 0; str[i] != '\0' && i < 80; i++) { if (isupper(str[i]) && str[i] != 'A' && str[i] != 'E' && str[i] != 'I' && str[i] != 'O' && str[i] != 'U') { count++; } } printf("count=%d\n", count); return 0; }
时间: 2024-01-24 11:01:53 浏览: 27
这个程序的功能是统计输入的字符串中大写辅音字母的个数,基本上和你前面提供的题目要求是一致的。不过这个程序中使用了 `gets()` 函数,这个函数是不安全的,已经被标记为废弃函数。因此,为了避免安全问题,我们可以将 `gets()` 函数替换为 `fgets()` 函数,修改后的程序如下:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char str[80];
int count = 0;
printf("Input a string:");
fgets(str, 80, stdin); // 输入字符串
int len = strlen(str);
if (str[len-1] == '\n') {
str[len-1] = '\0'; // 去掉换行符
}
for (int i = 0; str[i] != '\0'; i++) {
if (isupper(str[i]) && str[i] != 'A' && str[i] != 'E' && str[i] != 'I' && str[i] != 'O' && str[i] != 'U') {
count++;
}
}
printf("大写辅音字母的个数为 %d\n", count);
return 0;
}
```
这个程序的逻辑和你前面提供的程序基本一致,不过使用了更安全的 `fgets()` 函数。需要注意的是,在使用 `fgets()` 函数读入字符串后,输入缓冲区中可能会有一个换行符,因此需要在字符串末尾手动添加一个 '\0',并将换行符替换为 '\0'。