在一个字符串中找到第一个只出现一次的字符

来源:互联网 发布:淘宝商家电话怎么查 编辑:程序博客网 时间:2024/06/06 20:48

//通过两个表的建立来完成本程序,int_FreqOfOccurTable标记每个字符的出现次数,

//int_TimeOfOccurTable标记每个字符的出现时间(最先出现的标记为1,未出现的标记为0)

 

char fun_SearchChar(char* pchar_param_Str){int int_FreqOfOccurTable[256] = {0} ;int int_TimeOfOccurTable[256] = {0} ;int int_Time = 1 ; // 代表首次出现while (*pchar_param_Str){int_FreqOfOccurTable[*pchar_param_Str] += 1 ;if (int_TimeOfOccurTable[*pchar_param_Str] == 0)int_TimeOfOccurTable[*pchar_param_Str] = int_Time++ ;pchar_param_Str++ ;}int int_TimeOfOccur = std::numeric_limits<int>::max() ;char char_Find = 0 ;for (int i = 0 ; i < 256; ++i){if (int_FreqOfOccurTable[i] == 1)if (int_TimeOfOccurTable[i] < int_TimeOfOccur){int_TimeOfOccur = int_TimeOfOccurTable[i] ;char_Find = i ;}}return char_Find ;}int _tmain(int argc, _TCHAR* argv[]){system("title 查找字符串首个只出现一次的字符") ;char char_Array[] = "ffedccaba" ;std::cout << "待查找字符串为:" << char_Array << std::endl ;std::cout << "该字符串中只出现一次的首个字符为:" << fun_SearchChar(char_Array) << std::endl ;system("pause") ;return 0;}


 

0 0
原创粉丝点击