在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
int find_first_str(char *string)
{
if(*string==NULL)
return -1;
int i=0,j=0,count=0,location=-1;
for(i=0;i<strlen(string);i++)
{
count=0;
if(i==location)
continue;
for(j=i;j<strlen(string);j++)
{
if(string[i]==string[j])
{
location=j;
count++;
}
if(count==2)
break;
}
if(count==1)
return i;
}
return -1;
july大神的代码是这样给出的
void findNoRepeat(char *src)
{
int pos;
char *str = src;
int i ,len = strlen(src);
//统计
for(i = 0 ; i < len ;i ++)
bit_map[str[i]-'a'] ++;
//从字符串开始遍历 其bit_map==1 那么就是结果
for(i = 0 ; i < len ; i ++)
{
if(bit_map[str[i]-'a'] == 1)
{
printf("%c",str[i]);
return ;
}
}
}