用C语言实现:给定一个字符串 其中有些字符在字符串中出现了2次 找到这些字符第一次出现的位置,字符在字符串中的位置从1开始
时间: 2023-10-15 16:08:09 浏览: 107
好的,我能帮你实现这个功能。以下是 C 语言的代码实现:
```
#include <stdio.h>
#include <string.h>
void find_duplicate_chars(char* str) {
int len = strlen(str);
int char_count[256] = {0};
for (int i = 0; i < len; i++) {
char_count[str[i]]++;
}
for (int i = 0; i < len; i++) {
if (char_count[str[i]] == 2) {
printf("Character %c first appears at position %d\n", str[i], i + 1);
char_count[str[i]] = 0;
}
}
}
int main() {
char str[] = "abbcdeffggh";
find_duplicate_chars(str);
return 0;
}
```
代码解释如下:
- `find_duplicate_chars` 函数接收一个字符串作为输入,并将重复出现的字符的第一次出现位置打印出来。
- 在 `find_duplicate_chars` 函数中,首先计算每个字符出现的次数,存储在 `char_count` 数组中。
- 然后遍历字符串中的每个字符,如果这个字符在字符串中出现了两次,就打印出它第一次出现的位置,并将它在 `char_count` 数组中的计数清零。
- 最后在 `main` 函数中调用 `find_duplicate_chars` 函数,传入一个测试字符串,即可测试代码的正确性。
希望这个代码能够帮到你!
阅读全文