我一直在努力获得一个简单的函数来工作,目的是传递一个字符,函数然后搜索ALPHABET字符串,然后如果找到字符,则返回索引字符串内的字符。找不到字符串中的'空格'字符
我有一个包含字母表一个基本恒定的,包括一个撇号和空格字符:
const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,’ ";
现在我它接受一个字符作为一个参数的函数:
int charaPosition(string chara){
transform(chara.begin(), chara.end(),chara.begin(), ::toupper);
int charaIndex = ALPHABET.find(chara, 0);
if (charaIndex != string::npos) {
return charaIndex;
}else{
cout << "Not found" << endl;
}
}
功能被启动像这样:
cout << charaPosition("s") << endl;
这一切工作正常到某一点,我f我传入A,函数返回0,B返回1等。但是如果我传入空格字符,它将返回31而不是29,如果我传入撇号字符,它只是不会被发现。
我会非常感谢任何人的帮助。
http://stackoverflow.com/questions/15475744/string-find-is-not-finding-spaces < - 这是同样的问题,我相信。 – antiHUMAN
有一个[mcve],我们可以简单地复制和粘贴到一个IDE将是很好的... –
尝试使用7位ascii撇号而不是''' – Alderath