本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – GBK编码下的全角字符转半角字符
原文链接:https://www.stubbornhuang.com/1846/
发布于:2021年11月30日 9:34:48
修改于:2021年12月02日 22:33:04
1 C++全角字符转半角字符
在一些文章或者网页上的数字在复制到剪切板上面时经常会保持全角输入状态,这个需要将全角字符转换为半角字符。在转换的过程中,中文保持原有状态,中文标点符号保持原有状态,将中文空格清空,其他全角字符转换为半角字符,转换过程可参考以下代码:
#include <iostream>
static std::string DoubleByteCharToSingleByteChar(const std::string& srcStr)
{
std::string dstStr = "";
unsigned char tmp, tmp1;
for (unsigned int i = 0; i < srcStr.length(); i++)
{
tmp = srcStr[i];
tmp1 = srcStr[i + 1];
// 第一个字节是163,标志着是全角字符
if (tmp == 163)
{
dstStr += (unsigned char)srcStr[i + 1] - 128;
i++;
continue;
}
// 汉字
else if (tmp > 163)
{
dstStr += tmp;
dstStr += tmp1;
i++;
continue;
}
// 中文空格
else if (tmp == 161 && tmp1 == 161)
{
dstStr += "";
i++;
continue;
}
else if (tmp == 161 && tmp1 > 161)
{
dstStr += tmp;
dstStr += tmp1;
i++;
continue;
}
else
{
dstStr += tmp;
}
}
return dstStr;
}
int main()
{
std::string input_str = "55555。你好。";
std::string output_str = DoubleByteCharToSingleByteChar(input_str);
std::cout << output_str << std::endl;
}
当前分类随机文章推荐
- C++ - vector存储动态指针时正确释放内存 阅读5900次,点赞0次
- C++ - linux编译C++代码出现error: use of deleted function std::atomic
::atomic(const std::atomic 阅读2793次,点赞0次&) - Centos7 编译C++项目错误解决 : terminate called after throwing an instance of 'std::regex_error' 阅读2597次,点赞1次
- C++ – UTF8编码下的全角字符转半角字符 阅读1837次,点赞0次
- C++ - queue存储动态指针时正确释放内存 阅读5566次,点赞2次
- C++ - std::numeric_limits
简介与使用,用于获取指定数据类型的最大值与最小值 阅读397次,点赞0次 - C++ - 获取std::vector中的最小值、最大值以及对应的索引 阅读237次,点赞0次
- C++ - 线程安全的std::cout 阅读2081次,点赞0次
- C++11/std::thread - 线程管理join/detach 阅读2402次,点赞0次
- C++STL容器 - std::vector构造方式与分配值方式总结 阅读846次,点赞0次
全站随机文章推荐
- WordPress - 自定义修改用户登录页面的logo(图片、链接、提示信息)、登录框内容、底部内容、css 阅读91次,点赞0次
- 资源分享 - Qt5开发及实例(第3版)陆文周主编高清PDF下载 阅读8656次,点赞6次
- C++ - 使用标准库std::use_facet和std::codecvt进行跨平台gbk与utf8字符集转换 阅读273次,点赞0次
- C++ - Windows和Linux系统下获取当前可执行程序的绝对路径 阅读2225次,点赞0次
- Python3 - 正则表达式去除字符串中的特殊符号 阅读13467次,点赞1次
- Unity - 字节数组byte[]保存为文件 阅读4673次,点赞2次
- 书籍翻译 – Fundamentals of Computer Graphics, Fourth Edition,第2章 Miscellaneous Math中文翻译 阅读2773次,点赞16次
- 资源分享 - OpenGL编程指南(原书第8版)- OpenGL红宝书高清带书签PDF下载 阅读4880次,点赞1次
- TensorRT - Using PreviewFeaturekFASTER_DYNAMIC_SHAPES_0805 can help improve performance and resolve potential functional issues 阅读567次,点赞0次
- 资源分享 - Physics-Based Animation 英文高清PDF下载 阅读2283次,点赞0次
评论
169