c语言中.随机输入两串字符串,找出两串字符串之间所有相同的字符并按照ASCII码大小输出并统计重复字符的个数. 要求: (1)可输入小写,大写,数字 (2)遇到重复的字符只输出一次并只算一个个数 (3)尽可能完成按照ASCII码大小输出
时间: 2024-10-05 10:03:48 浏览: 53
字符串/字符数组的一系列应用
在C语言中,你可以通过以下步骤来实现这个功能:
1. **获取用户输入**:
使用`scanf`函数分别读取两个字符串,注意要考虑大小写。
```c
char str1[50], str2[50];
printf("请输入第一个字符串:");
fgets(str1, sizeof(str1), stdin);
str1[strlen(str1) - 1] = '\0'; // 去掉换行符
printf("请输入第二个字符串:");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0';
```
2. **处理重复字符**:
创建一个辅助数组`count[]`用于存储每个字符及其出现次数,同时创建一个`visited[]`数组记录已经遍历过的字符,避免重复输出。
```c
int count[256] = {0}, visited[256] = {0};
for (int i = 0; i < strlen(str1); i++) {
if (!visited[str1[i]]) {
for (int j = 0; j < strlen(str2); j++) {
if (str1[i] == str2[j]) {
count[str1[i]]++;
visited[str1[i]] = 1;
break;
}
}
}
}
```
3. **ASCII码排序和输出**:
遍历`count[]`数组,对ASCII码值升序排列,打印出字符和出现次数。
```c
for (int i = 0; i < 256; i++) {
if (count[i] > 0) {
printf("字符 '%c' 出现了 %d 次,ASCII码值:%d\n", i, count[i], i);
}
}
```
阅读全文