查找字符串中第一个不重复的字符一般有三种方法实现:
1、先对字符串排序然后一次对比查找
2、使用flag数组作标记
3、使用hash数组
以下代码是第三种方法实现:
#include<stdio.h>
#include<string.h>
#define MAX_SIZE 50
int main(){
int i,loc;
char *str = "aabccbdeffe";
int len = strlen(str);
int num[MAX_SIZE]={0};
int index[MAX_SIZE]={0};
for(i=0;i<len;i++){
num[str[i]-'a']++;
index[str[i]-'a']=i;
}
for(i=0;i<len;i++){
if(num[i] == 1 ){
loc=i;
break;
}
}
if(loc != 0){
printf("%c",loc+'a');
}else{
printf("不存在不重复字符!");
}
return 0;
}