本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – Unicode编码下的全角字符转半角字符
原文链接:https://www.stubbornhuang.com/1849/
发布于:2021年12月04日 12:02:46
修改于:2021年12月04日 12:02:46

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;
}
当前分类随机文章推荐
- C++ - 字节数组byte[]或者unsigned char[]与long的相互转换 阅读736次,点赞0次
- C++11 - 快速学会正则表达式 阅读1166次,点赞2次
- C++ - 最简单的将文本文件的内容一次性读取到std::string的方法 阅读4245次,点赞4次
- C++ - GBK编码下的全角字符转半角字符 阅读1364次,点赞0次
- C++11/std::shared_ptr - 循环引用问题 阅读3853次,点赞0次
- C++ - 拷贝构造函数与拷贝构造函数调用时机 阅读152次,点赞0次
- C++ - std::unordered_map中使用结构体或者vector等复杂的数据结构作为Key值 阅读168次,点赞0次
- C++ - vector存储动态指针时正确释放内存 阅读5363次,点赞0次
- C++ - std::string与std::wstring相互转换 阅读1556次,点赞0次
- C++ – UTF8编码下的全角字符转半角字符 阅读1418次,点赞0次
全站随机文章推荐
- C++ - 在Windows/Linux上创建单级目录以及多级目录的跨平台方法 阅读781次,点赞0次
- Python - 运算符/、//和%的含义与区别 阅读264次,点赞0次
- 资源分享 - Artificial Intelligence - A Modern Approach , Fourth Edition 英文高清PDF下载 阅读3464次,点赞0次
- WordPress - 获取某个用户发表的文章数量 阅读1701次,点赞0次
- yolov5 - 原始仓库检测代码detect.py中文注释 阅读2415次,点赞1次
- 工具网站推荐 - PhotoShop、Adobe Premiere、Autodesk AutoCAD、Adobe After Effects等生产力软件下载 阅读353次,点赞0次
- C++ - 使用模板和智能指针构建一个双向链表工具类 阅读666次,点赞0次
- 资源分享 - VR Developer Gems 英文高清PDF下载 阅读1300次,点赞1次
- 资源分享 - Ray Tracing Gems - High-Quality and Real-Time Rendering with DXR and Other APIs 英文高清PDF下载 阅读2414次,点赞0次
- 资源分享 - GPU Pro 5 - Advanced Rendering Techniques 英文高清PDF下载 阅读2711次,点赞0次
评论
164