1 Unicode编码下的全角字符转半角字符
如果输入的待转换的字符串是std::wstring型,那么直接对std::wstring中的字符进行遍历,将其中的全角字符转换为半角字符,具体的转换代码如下:
#include <iostream>
#include <locale>
#include <codecvt>
static std::wstring DoubleByteCharToSingleByteChar_Unicode(const std::wstring& srcStr)
{
std::wstring dstStr = L"";
int tempChar;
int length = srcStr.length();
for (int i = 0; i < length; i++)
{
tempChar = srcStr[i];
if (tempChar == 12288)
{
tempChar = 32;
}
else if (tempChar >= 65281 && tempChar <= 65374)
{
tempChar -= 65248;
}
dstStr += tempChar;
}
return dstStr;
}
int main()
{
std::wstring input_str = L"55555。你好。";
std::wstring output_str = DoubleByteCharToSingleByteChar_Unicode(input_str);
std::wcout << output_str << std::endl;
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – Unicode编码下的全角字符转半角字符
原文链接:https://www.stubbornhuang.com/1849/
发布于:2021年12月04日 12:02:46
修改于:2023年06月26日 21:00:24
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52