我有一个包含 unicode 字符的字符串(我不知道我是否使用了正确的命名法)。我可以逐个字符地查看,但我无法直接与之比较:
寻找宽字符存在的正确方法是什么?
这里是 MWE,尝试将字符与例如“α”进行比较时出现错误。
#include<iostream>
int main(){
std::string s = " α a ";
std::cout << "s = " << s << std::endl;
for(std::string::iterator c = s.begin(); c != s.end(); ++c){
if(*c == 'a') std::cout << "letter a" << std::endl; // ok
if(*c == 'α') std::cout << "greek letter alpha" << std::endl; // error: character too large
std::cout << *c << std::endl;
}
return 0;
}
我在 Linux 中使用 clang 3.5。
我想要做的是(复制)用一个单词替换一个字符。我可以使用正则表达式,但这似乎有点矫枉过正。