C11写一个字符串输入一段字符 输出重复字符
时间: 2024-10-12 07:14:28 浏览: 22
以下是使用C11编写的一个简单程序,它会从用户输入读取字符串,并统计每个字符的出现次数,最后输出重复字符及其出现的次数:
```c
#include <stdio.h>
#include <string.h> // 引入strtok_r用于分隔字符串
#define CHAR_COUNT 26 // 假设我们只关心ASCII字母
// 定义字符计数数组
char count_array[CHAR_COUNT] = {0};
void count_chars(const char* str) {
while (*str != '\0') {
if (isalpha(*str)) { // 检查是否是字母
str++; // 跳过空格
char c = tolower(*str) - 'a'; // 转换为小写字母并计算索引
count_array[c]++;
} else {
str++;
}
}
}
void output_duplicates() {
for (int i = 0; i < CHAR_COUNT; i++) {
if (count_array[i] > 1) {
printf("Character '%c' appears %d times.\n", 'a' + i, count_array[i]);
}
}
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin);
// 移除输入字符串的结束符
size_t len = strlen(input);
if (input[len - 1] == '\n')
input[len - 1] = '\0';
count_chars(input);
output_duplicates();
return 0;
}
```
当你运行这个程序时,它会提示你输入一个字符串,然后输出其中重复出现的字母及其次数。
阅读全文