统计字符串个数。从键盘输入 a-z 的字符串,统计每个字母出现的个数。如:输入:"aabbacccdddb" 输出: "3a3b3c3d",请用C语言使用三种方法实现
时间: 2023-05-15 20:06:32 浏览: 91
使用汇编语言,输入字符串,统计其总字符数、字母数、数字数、其他数并输出
好的,我可以回答这个问题。以下是三种不同的方法实现统计字符串中每个字母出现的次数:
方法一:使用数组
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++) {
count[str[i] - 'a']++;
}
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%d%c", count[i], i + 'a');
}
}
return 0;
}
```
方法二:使用指针
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
char *p;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
p = str;
while (*p != '\0') {
count[*p - 'a']++;
p++;
}
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%d%c", count[i], i + 'a');
}
}
return 0;
}
```
方法三:使用哈希表
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++) {
count[str[i] - 'a']++;
}
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%d%c", count[i], i + 'a');
}
}
return 0;
}
```
以上三种方法都可以实现统计字符串中每个字母出现的次数,具体使用哪种方法取决于个人喜好和实际情况。
阅读全文