多字节、宽字节、兼容字节(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

相关文章

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Java Multimap实现类与操作的具体示例

《JavaMultimap实现类与操作的具体示例》Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,:本文主要介绍JavaMultimap实现类与操作的... 目录一、Multimap 概述Multimap 主要特点:二、Multimap 实现类1. ListMult

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce