首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么在字符串里查找第一个不重复的字母,即只出现一次的最靠前的字母

2012-09-16 
如何在字符串里查找第一个不重复的字母,即只出现一次的最靠前的字母#include iostreamusing namespace s

如何在字符串里查找第一个不重复的字母,即只出现一次的最靠前的字母

#include <iostream>using namespace std;char findIt(const char *str);int main(){    char str[]="iamastudenti";    cout << findIt(str) << endl;    return 0;}char findIt(const char *str){    int count[26]={0};    int index[26]={0};  //注意int数组初始化赋值时,如果写成={-1}是不能给所有元素初始化为-1的,只有第一个元素是-1,其余为默认值0    unsigned int i;    int pos;    for(i=0;i<strlen(str);i++)    {        count[str[i]-'a']++;   //记录该字母出现的次数       // cout<<count[str[i]-'a']<<endl;        if(index[str[i]-'a']==0)        {            index[str[i]-'a']=i;  //记住该字母第一次出现时的索引        }    }    pos=strlen(str);    for(i=0;i<26;i++)    {        if(count[i]==1)  //找到只出现一次的字母        {            if(index[i]!=-1&&index[i]<pos)  //在只出现一次的字母中找出索引值最小的即可            {                pos=index[i];            }        }    }    if(pos<strlen(str))        return str[pos];    return '\0';}

1楼CaiLongX昨天 10:47
这个代码是什么字体啊,请问?

热点排行