顺序串存储结构定义如下:typedef struct{ char ch[maxsize+1]; int length; }SString; 设计算法,统计输入字符串中出现A~Z的次数
时间: 2024-05-13 07:20:09 浏览: 14
我可以回答这个问题。以下是统计字符串中出现 A~Z 的次数的算法:
1. 初始化 26 个字母的出现次数为0。
2. 逐个遍历输入的字符串中的字符,如果该字符的 ASCII 码在 A~Z 的范围内,则相应字母的出现次数加1。
3. 遍历结束后,输出每个字母出现的次数即可。
下面是实现该算法的示例代码:
```
void countLetters(SString s) {
int count[26] = {0}; // 26 个字母的出现次数
int len = s.length;
for (int i = 0; i < len; i++) {
char c = s.ch[i];
if (c >= 'A' && c <= 'Z') {
count[c - 'A']++;
}
}
for (int i = 0; i < 26; i++) {
char letter = 'A' + i;
printf("%c: %d\n", letter, count[i]);
}
}
```
你可以输入一个字符串调用该函数,例如:
```
SString s = {"Hello, World!", 13};
countLetters(s);
```
输出结果如下:
```
A: 0
B: 0
C: 0
D: 1
E: 1
F: 0
G: 0
H: 1
I: 0
J: 0
K: 0
L: 3
M: 0
N: 0
O: 2
P: 0
Q: 0
R: 1
S: 0
T: 1
U: 0
V: 0
W: 1
X: 0
Y: 0
Z: 0
```
希望能对你有所帮助!