#include<stdio.h>
#include<assert.h>
#include<ctype.h>
//第一个出现的并且不是重复的字符
char firstNotRepeate(char* str)
{
assert(str != NULL);
const int SIZE = 256;//定义int型类型常变量
int hashTable[SIZE] = {};//hashTable会遍历ascII的字符,
//hashTable[SIZE] = {}代表将实例中出现的字符复制到一维数组中
char *phash = str;//解引用数组首元素
while(*phash != '\0')
{
//hashTable[*(phash++)]++;//相当于下面的两句语句
hashTable[*phash]++;//hashTable[*phash]++表示复制同一字符次数++
phash++;//指针++
}
phash = str;//将指针从头开始,搜索第一个复制一次的字符
while(*phash != '\0')
{
if(hashTable[*phash] == 1)
{
return *phash;
}
phash++;
}
return '\0';
}
int main()
{
char *str = "abdcabe";
char ch = firstNotRepeate(str);
printf("%c\n",ch);
getchar();
return 0;
}
答案:d