多字节、宽字节、兼容字节(TEXT) 相关操作汇总

2024-09-06 13:32

本文主要是介绍多字节、宽字节、兼容字节(TEXT) 相关操作汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

常用函数对照

ANSIUNICODE通用说明
数据类型
(char.h)(wchar.h)(tchar.h) 
charwchar_tTCHAR 
char *wchar_t *TCHAR* 
LPSTRLPWSTRLPTSTR 
LPCSTRLPCWSTRLPCTSTR 
    
字符串转换
atoi_wtoi_ttoi把字符串转换成整数(int)
atol_wtol_ttol把字符串转换成长整型数(long)
atof_wtof_tstof把字符串转换成浮点数(double)
itoa_itow_itot将任意类型的数字转换为字符串
    
字符串操作
strlenwcslen_tcslen获得字符串的数目
strcpywcscpy_tcscpy拷贝字符串
strncpywcsncpy_tcsncpy类似于strcpy/wcscpy,同时指定拷贝的数目
strcmpwcscmp_tcscmp比较两个字符串
strncmpwcsncmp_tcsncmp类似于strcmp/wcscmp,同时指定比较字符字符串的数目
strcatwcscat_tcscat把一个字符串接到另一个字符串的尾部
strncatwcsncat_tcsnccat类似于strcat/wcscat,而且指定粘接字符串的粘接长度.
strchrwcschr_tcschr查找子字符串的第一个位置
strrchrwcsrchr_tcsrchr从尾部开始查找子字符串出现的第一个位置
strpbrkwcspbrk_tcspbrk从一字符字符串中查找另一字符串中任何一个字符第一次出现的位置
strstrwcsstr/wcswcs_tcsstr在一字符串中查找另一字符串第一次出现的位置
strcspnwcscspn_tcscspn返回不包含第二个字符串的的初始数目
strspnwcsspn_tcsspn返回包含第二个字符串的初始数目
strtokwcstok_tcstok根据标示符把字符串分解成一系列字符串
 wcswidth 获得宽字符串的宽度
 wcwidth 获得宽字符的宽度
    
字符串测试
isasciiiswascii_istascii测试字符是否为ASCII 码字符, 也就是判断c 的范围是否在0 到127 之间
isalnumiswalnum_istalnum测试字符是否为数字或字母
isalphaiswalpha_istalpha测试字符是否是字母
iscntrliswcntrl_istcntrl测试字符是否是控制符
isdigitiswdigit_istdigit测试字符是否为数字
isgraphiswgraph_istgraph测试字符是否是可见字符
isloweriswlower_istlower测试字符是否是小写字符
isprintiswprint_istprint测试字符是否是可打印字符
ispunctiswpunct_istpunct测试字符是否是标点符号
isspaceiswspace_istspace测试字符是否是空白符号
isupperiswupper_istupper测试字符是否是大写字符
isxdigitiswxdigit_istxdigit测试字符是否是十六进制的数字
大小写转换
tolowertowlower_totlower把字符转换为小写
touppertowupper_totupper把字符转换为大写
字符比较
strcollwcscoll_tcscoll比较字符串
日期和时间转换
strftimewcsftime_tcsftime根据指定的字符串格式和locale设置格式化日期和时间
strptime  根据指定格式把字符串转换为时间值, 是strftime的反过程
打印和扫描字符串
printfwprintf_tprintf使用vararg参量的格式化输出到标准输出
fprintffwprintf_ftprintf使用vararg参量的格式化输出
scanfwscanf_tscanf从标准输入的格式化读入
fscanffwscanf_ftscanf格式化读入
sprintfswprintf_stprintf根据vararg参量表格式化成字符串
sscanfswscanf_stscanf以字符串作格式化读入
vfprintfvfwprintf_vftprintf使用stdarg参量表格式化输出到文件
vprintf  使用stdarg参量表格式化输出到标准输出
vsprintfvswprintf_vstprintf格式化stdarg参量表并写到字符串
sprintf_sswprintf_s_stprintf_s格式化字符串
数字转换
strtodwcstod_tcstod把字符串的初始部分转换为双精度浮点数
strtolwcstol_tcstol把字符串的初始部分转换为长整数
strtoulwcstoul_tcstoul把字符串的初始部分转换为无符号长整数
_strtoi64_wcstoi64_tcstoi64 
    
输入和输出
fgetcfgetwc_fgettc从流中读入一个字符并转换为宽字符
fgetsfgetws_fgetts从流中读入一个字符串并转换为宽字符串
fputcfputwc_fputtc把宽字符转换为多字节字符并且输出到标准输出
fputsfputws_fputts把宽字符串转换为多字节字符并且输出到标准输出串
getcgetwc_gettc从标准输入中读取字符, 并且转换为宽字符
getchargetwchar_gettchar从标准输入中读取字符
putcputwc_puttc标准输出
putcharputwchar_puttchar标准输出
ungetcungetwc_ungettc把一个字符放回到输入流中

        

2019-1-30  添加: (c++11 标准库)

        char pc1[] = "111严111";
        TCHAR pt[] = _T("111严111");//L TEXT...  gb2312->unicode

        //运用 wstring_convert<codecvt> 实现 gb2312->unicode
        string sz(pc1);
        wstring_convert<codecvt<wchar_t, char, mbstate_t>> decode(new codecvt<wchar_t, char, mbstate_t>("CHS"));
        wstring wsz = decode.from_bytes(sz);
        char *p1 = (char*)sz.c_str();
        wchar_t *p2 = (wchar_t *)wsz.c_str();

        //运用 mbstowcs 实现 gb2312->unicode
        string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";
        setlocale(LC_ALL, "chs");
        wchar_t wpc[20];
        mbstowcs(wpc, pc1, strlen(pc1));
        setlocale(LC_ALL, curLocale.c_str());

        //unicode->utf8
        wsz= pt;
        wstring_convert<codecvt_utf8<wchar_t>>myconv;
        string sz1 = myconv.to_bytes(wsz);
        const wchar_t *pwsz = wsz.c_str();
        const char* psz = sz1.c_str();

这篇关于多字节、宽字节、兼容字节(TEXT) 相关操作汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142143

相关文章

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件