c语言从键盘读入一个字符串,查找字符串中首个重复出现的小写字母,在屏幕上输出该字母及其在字符串中第一次和第二次出现的位置。字符的位置从1开始计数。
时间: 2024-03-05 09:53:25 浏览: 92
好的,这是一个字符串查找问题,我可以为您提供一个 C 语言的解决方案:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char s[100];
int appear_dict[26] = {-1}; // 用数组记录每个小写字母出现的位置,-1 表示未出现
printf("请输入一个字符串:");
scanf("%s", s);
for (int i = 0; s[i] != '\0'; i++) {
if (islower(s[i])) { // 如果是小写字母
if (appear_dict[s[i]-'a'] != -1) { // 如果已经出现过
printf("重复出现的字母:%c\n", s[i]);
printf("第一次出现的位置:%d\n", appear_dict[s[i]-'a']+1);
printf("第二次出现的位置:%d\n", i+1);
break;
} else {
appear_dict[s[i]-'a'] = i; // 记录位置
}
}
}
if (appear_dict[s[i]-'a'] == -1) { // 如果遍历完整个字符串都没有发现重复的小写字母
printf("0\n");
}
return 0;
}
```
这个程序使用了一个数组来记录每个小写字母出现的位置,-1 表示未出现。然后遍历整个字符串,如果发现一个小写字母已经出现过,就输出结果,并且退出循环。如果遍历完整个字符串都没有发现重复的小写字母,则输出“0”。注意字符串的位置从 1 开始计数,所以在输出位置时需要加一。
阅读全文