扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
目录
创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为疏勒企业提供专业的成都网站建设、网站建设,疏勒网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 面向对象
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 设计模式
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ STL
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 技术杂谈
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 常用函数
在 C / C++ 中字符串分为多字节字符串和宽字节字串(也称 unicode 字符串),具体区别请参考:《unicode 和多字节区别》;
C 语言中 _strupr_s 函数可用于将多字节字符串中的小写转大写,而 _wcsupr_s
函数则用于将 unicode
宽字节字符串中的小写转大写,需要包含头文件 string.h
,_wcsupr_s
函数语法如下:
/*
*描述:此类函数是用于将unicode字符串中的小写转大写
*
*参数:
* [in/out] _Str:将该字符串中的大写字符转换为小写
* [in] _Size:拼接后的字符串大小(并非目标字符串大小也并非原始字符串大小)
*
*返回值:errno_t是微软新定义的一种类型,这种类型是一种整型,代表错误代码,具体参考MSDN介绍,
* 若果是0 则代表没有错误,如果是其他的值 ,则会抛出一个值;
*/
//头文件:string.h
errno_t _wcsupr_s(char * _Str, size_t _Size);
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C/C++ _wcsupr_s 函数 – unicode 字符串小写转大写
//@Time:2021/08/25 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
#include "stdafx.h"
#include
#include
#include
#include "windows.h"
#include //setlocale 设置输出文字的语言区域,否则输出wchar字符包含中文乱码
void main()
{
WCHAR dst[1024] = { L"www.SHUOPYTHON.com" };
//使用wprintf输出中文需要设置输出文字的语言区域,否则乱码
setlocale(LC_ALL, "chs"); //chs 表示中文 ,需要包含头文件 Locale.h
wprintf(L"_wcsupr_s之前 dst:%s\n", dst);
_wcsupr_s(dst, wcslen(dst) + 1);
wprintf(L"_wcsupr_s之后 dst:%s\n", dst);
system("pause");
}
/*
输出结果:
_wcsupr_s之前 dst:www.SHUOPYTHON.com
_wcsupr_s之后 dst:WWW.SHUOPYTHON.COM
请按任意键继续. . .
*/
1. _wcsupr_s 第二个参数需要包含'\0'
,否则崩溃!
_wcsupr_s(dst, strlen(dst)); //崩溃
2.控制台输出 WCHAR
/ wchar_t
( unicode
字符串)只能使用 `wprintf ,并非 printf ;
输出多字节字符串,使用printf函数 ;
输出宽字节字符串,使用wprintf 函数;
3.如果使用 setlocale输出的
unicode字符串中含有中文,必须通过
setlocale` 函数设置语言为中文,否则乱码;
char* p1 = "C/C++教程-猿说编程"; //普通字符串 - 多字节字符串
wchar_t* p2 = L"C/C++教程-猿说编程"; //unicode字符串 - 字符串有修饰符 L
printf("p1 :%s \n", p1);
wprintf(L"p2 :%s \n", p2);
/*
输出:
p1 :C/C++教程-猿说编程
p2 :C/C++??-????
请按任意键继续. . .
*/
解决办法:参考上面例子,设置语言格式即可
setlocale(LC_ALL, "chs"); //chs 表示中文 ,需要包含头文件 Locale.h
未经允许不得转载:猿说编程 » C/C++ _wcsupr_s 函数 – unicode 字符串小写转大写
本文由博客 - 猿说编程 猿说编程 发布!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流