gpt4 book ai didi

c++ - 如何从字符串中解析欧元符号?

转载 作者:太空狗 更新时间:2023-10-29 21:17:52 25 4
gpt4 key购买 nike

我正在尝试为每个字符解析一个字符串字符,以便我可以根据每个字母加载图像。因此,如果文本是“你好”,我将打印 5 个字母相同但在 Photoshop 中制作的图像。在我想解析 € 符号之前,它工作正常。

std::string al = "Test €";

std::string letter="";
for (int i=0; i< al.length();++i)
{
if (al[i]=='.') letter ="dot";
else if (al[i]==',') letter ="coma";
else if (al[i]==' ') letter ="space";
//else if (al[i]=='€') letter ="euro";
else letter=al[i];
}

这很好用:letter 将获取值:"T","e","s","t","space" 但如果我取消注释else if (al[i]=='€') letter ="euro"; 并尝试构建它,然后我收到一条红色错误消息:

警告:多字符字符常量

所以问题是我需要知道 al[i] 是否是 € 符号才能将“欧元”分配给字母(然后我的代码才能使用它)

我在谷歌上搜索并发现 link其中说 "\u20AC" 是 € 的 c++ 代码,我想这个符号可能需要一个字节以上,但仍然找不到如何处理它并能够解析它在我的代码中。知道我该怎么做吗?

非常感谢。

注意:我不知道使用的 C++ 版本(不知道在哪里可以检查它)但我知道它不是 c++11

最佳答案

第一个问题是您应该注意在源代码中使用 Unicode 字符。编译器只需要支持特定的字符集,并不是所有的编译器都喜欢你的代码。我建议你阅读 this回答更详细的解释。

第二个问题是字符太大,无法用字 rune 字表示。您需要明确告诉编译器改用宽字 rune 字。

L'\x20AC`   // Notice the preceeding L

第三个问题是您的其余代码仍然使用窄字符串。将 std::string 更改为 std::wstring

关于c++ - 如何从字符串中解析欧元符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31453258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com