C++ std::string::at()
C++ std::string::at()
我想打印字符串的第一个字母。
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "다람쥐 헌 쳇바퀴 돌고파.";
cout << str.at(0) << endl;
}
我希望 '다'
像 java 一样打印,但是 '?'
被打印了。
我该如何解决?
您在 str
中的文本 -- 它是如何编码的?
不幸的是,您需要知道这一点才能获得第一个“字符”。 std::string class 只处理字节。字节如何变成字符是一个比较大的话题。
您可能正在寻找的魔法词是 UTF-8。请参阅此处了解更多信息:
如果你想自己走这条路,请看这里:Extract (first) UTF-8 character from a std::string
如果您真的感兴趣,这里有一个 hour-long 视频,它实际上很好地解释了文本编码:https://www.youtube.com/watch?v=_mZBa3sqTrI
我想打印字符串的第一个字母。
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "다람쥐 헌 쳇바퀴 돌고파.";
cout << str.at(0) << endl;
}
我希望 '다'
像 java 一样打印,但是 '?'
被打印了。
我该如何解决?
您在 str
中的文本 -- 它是如何编码的?
不幸的是,您需要知道这一点才能获得第一个“字符”。 std::string class 只处理字节。字节如何变成字符是一个比较大的话题。
您可能正在寻找的魔法词是 UTF-8。请参阅此处了解更多信息:
如果你想自己走这条路,请看这里:Extract (first) UTF-8 character from a std::string
如果您真的感兴趣,这里有一个 hour-long 视频,它实际上很好地解释了文本编码:https://www.youtube.com/watch?v=_mZBa3sqTrI