c++ - 在C++中查找和比较Unicode字符

标签 c++ unicode tokenize

我正在写一个词法分析器,它分析C++中的给定字符串。我有一串

line = R"(if n = 4 # comment
             return 34;  
             if n≤3 retur N1
          FI)";
我需要做的就是在 vector 中输出所有单词,数字和标记。
我的程序可以使用常规标记,单词和数字。但我不知道如何解析Unicode字符。我的程序需要保存在 vector 中的唯一Unicode字符是≤和≠。
到目前为止,我所有的代码基本上都是一行一行地读取字符串,读取第一个单词,数字或 token ,将其切掉,然后递归继续吃 token ,直到字符串为空。我无法比较line[0](当然),并且我也不清楚要摆脱Unicode字符需要砍掉多少字符串?在"!="的情况下,我简单地删除line[0]line[1]

最佳答案

如果您的输入文件是utf8,则只需将Unicode字符等视为字符串。因此,您只需要使用与"≤"相同的逻辑来识别"<="即可。然后由strlen("≤")给出Unicode字符的长度

关于c++ - 在C++中查找和比较Unicode字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64298164/

相关文章:

c++ - 为什么 std::hash<T> 不专用于 char*?

c++ - 使用 std::equal 和相等运算符的比较

postgresql - 获取 Unicode 值 [PostgreSQL]

c++ - 拆分字符串但保留空标记 C++

c - 在c中解析一个char数组

Android NDK 和 pthread

c++ - 在没有返回值优化的情况下将两个对象相加会创建多少个临时对象?

python - 如何检查是否分配了 Unicode 代码点?

matlab - matlab的latex解释器如何处理unicode?

java - 用于在文件中查找电子邮件地址/IP 地址的字符串标记生成器/正则表达式