题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdef,则输出b
分析:这道题其实很简单,因为字符只有256中可能,所以我们可以申请一个大小为256的字符数组来统计每个字符出现的次数,统计完成后我们以原数组的元素值为下表
访问统计数组,知道遇到第一个访问数组数组原始值为1的元素,其所在位置的字符即为第一个出现的字符。
参考代码如下:
#include<stdio.h>
#include<string.h>
void findFirstNoRepeatChar(char* str)
{
if(str == NULL)
return;
int countChar[256];
for(int i=0;i<strlen(str);i++)
{
countChar[str[i]]++;
}
for(int j=0;j<strlen(str);j++)
{
if(countChar[str[j]] == 1)
{
printf("%c",str[j]);
return;
}
}
if(j == strlen(str))
{
printf("不存在这样的字符");
}
}
int main()
{
char str[1000];
gets(str);
findFirstNoRepeatChar(str);
getchar();
return 0;
}