0

我有一个包含 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。

我想要做的是(复制)用一个单词替换一个字符。我可以使用正则表达式,但这似乎有点矫枉过正。

4

0 回答 0