A. 实验7-3-2 统计大写辅音字母 (15 分) 题目描述 英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。 输入 输入在一行中给出一个不超过80个字符、并以回车结束的字符串。 输出 输出在一行中给出字符串中大写辅音字母的个数。用C语言编写代码
时间: 2024-02-20 21:56:57 浏览: 177
下面是一个可能的 C 语言解法,你可以参考一下:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char s[81];
int count = 0;
fgets(s, 81, stdin);
for (int i = 0; i < strlen(s); i++) {
if (isupper(s[i]) && s[i] != 'A' && s[i] != 'E' && s[i] != 'I' && s[i] != 'O' && s[i] != 'U') {
count++;
}
}
printf("%d", count);
return 0;
}
```
这个解法中,我们首先定义一个字符数组 `s` 来存储输入的字符串,使用 `fgets()` 函数获取输入的字符串,然后使用 `strlen()` 函数获取字符串的长度。接着使用 `isupper()` 函数判断每个字符是否为大写字母,并且使用 `&&` 和 `!=` 运算符判断是否为辅音字母。最后使用一个计数器 `count` 统计大写辅音字母的个数,最终输出 `count` 即可。
相关问题
题目描述 从键盘读入一句英文短句(仅含字母和空格,且字符串长度不超过100),请将字符串中元音字母转为大写字母,辅音字母转为小写字母。 备注:英文中元音字母有 a、e、i、o、u 这5个,当然 A、E、I、O、U 也是元音字母。
好的,这是一个字符串处理的问题,你可以使用 Python 语言来实现。以下是一个简单的实现方法:
```python
# 读入字符串
s = input()
# 定义元音字母集合
vowels = set(['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'])
# 处理字符串中的每个字符
res = ""
for c in s:
if c in vowels:
res += c.upper()
else:
res += c.lower()
# 输出结果
print(res)
```
这个程序首先读入一个字符串,然后定义了一个包含所有元音字母的集合。接着,程序遍历了字符串中的每个字符,如果字符在元音字母集合中,则将其转为大写字母,否则转为小写字母。最后,程序输出处理后的字符串。
注意,这个程序只处理了英文字符串,如果输入的字符串中包含其他字符,则可能会出现错误。你可以根据需要添加更多的字符判断逻辑来完善这个程序。
用C语言给定一个只包含下划线和大写字母的字符串,将下划线全部换成大写字母,问有多少种填法能使这个字符串满足以下三种要求: 不包含三个及以上连续的元音字母; 不包含三个及以上连续的辅音字母; 至少包含一个大写字母 L。 元音字母仅包含A,E,I,O,U,其他的字母都是辅音字母。 输入格式: 输入的一行给出一行字符串S; ∣S∣≤100 题目保证最多含有10个下划线,并且只会出现大写字母和下划线。 输出格式: 输出一个整数——表示方案数。
这道题目需要一些字符串的处理和计数技巧。首先将字符串中的下划线全部替换成大写字母,可以用字符串遍历的方式实现。然后对于每个填充下划线的位置,分别计算填充为元音字母和填充为辅音字母的方案数,最后将所有位置的方案数相乘即可。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
// 判断一个字符是否为元音字母
int isVowel(char c) {
return c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U';
}
int main() {
char s[105];
scanf("%s", s);
int len = strlen(s);
// 将下划线替换成大写字母
for (int i = 0; i < len; i++) {
if (s[i] == '_') s[i] = 'L';
}
int ans = 1;
// 统计填充为元音字母和填充为辅音字母的方案数
for (int i = 0; i < len; i++) {
if (s[i] == 'L') {
ans *= 26; // 填充为大写字母 L 的方案数为 26
} else if (isVowel(s[i])) {
if (i > 0 && isVowel(s[i-1])) {
ans *= 4; // 连续两个元音字母,填充为元音字母的方案数为 4
} else {
ans *= 5; // 单个元音字母,填充为元音字母的方案数为 5
}
} else {
if (i > 0 && !isVowel(s[i-1])) {
ans *= 4; // 连续两个辅音字母,填充为辅音字母的方案数为 4
} else {
ans *= 20; // 单个辅音字母,填充为辅音字母的方案数为 20
}
}
}
printf("%d\n", ans);
return 0;
}
```
需要注意的是,在计算填充为元音字母和填充为辅音字母的方案数时,需要考虑前一个字符是否为元音字母或辅音字母,以满足不包含三个及以上连续的元音字母或辅音字母的要求。
阅读全文