C/C++ _wcslwr_s 函数 – unicode 字符串大写转小写 - C语言零基础入门教程
目錄
- 一._wcslwr_s 函數(shù)簡介
- 二._wcslwr_s 函數(shù)實戰(zhàn)
- 三.注意問題
- 四.猜你喜歡
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語言基礎(chǔ)入門
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C++ 面向?qū)ο?/p>
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C++ 設(shè)計模式
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C++ STL
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C/C++ 技術(shù)雜談
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C/C++ 常用函數(shù)
一._wcslwr_s 函數(shù)簡介
在 C / C++ 中字符串分為多字節(jié)字符串和寬字節(jié)字串(也稱 unicode 字符串),具體區(qū)別請參考:《unicode 和多字節(jié)區(qū)別》;
**C 語言中_strlwr_s函數(shù)可用于將多字節(jié)字符串中的大寫轉(zhuǎn)為小寫,而_wcslwr_s函數(shù)則用于將unicode寬字節(jié)字符串中的大寫轉(zhuǎn)為小寫,需要包含頭文件string.h,_wcslwr_s` 函數(shù)語法如下:
/* *描述:此類函數(shù)是用于將unicode字符串中的大寫字符轉(zhuǎn)為小寫 * *參數(shù): * [in/out] _Str:將該字符串中的大寫字符轉(zhuǎn)換為小寫 * [in] _Size:拼接后的字符串大小(并非目標(biāo)字符串大小也并非原始字符串大小) * *返回值:errno_t是微軟新定義的一種類型,這種類型是一種整型,代表錯誤代碼,具體參考MSDN介紹, * 若果是0 則代表沒有錯誤,如果是其他的值 ,則會拋出一個值; *///頭文件:string.herrno_t _wcslwr_s(char * _Str, size_t _Size);二._wcslwr_s 函數(shù)實戰(zhàn)
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C/C++ _wcslwr_s 函數(shù) – unicode 字符串大寫轉(zhuǎn)小寫 //@Time:2021/08/23 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************/#include "stdafx.h" #include<stdlib.h> #include<stdio.h> #include<string.h> #include "windows.h" #include <Locale.h> //setlocale 設(shè)置輸出文字的語言區(qū)域,否則輸出wchar字符包含中文亂碼void main() {WCHAR dst[1024] = { L"www.CODERSRC.com" };//使用wprintf輸出中文需要設(shè)置輸出文字的語言區(qū)域,否則亂碼setlocale(LC_ALL, "chs"); //chs 表示中文 ,需要包含頭文件 Locale.hwprintf(L"_wcslwr_s之前 dst:%s\n", dst);_wcslwr_s(dst, wcslen(dst) + 1);wprintf(L"_wcslwr_s之后 dst:%s\n", dst);system("pause"); } /* 輸出結(jié)果: _wcslwr_s之前 dst:www.CODERSRC.com _wcslwr_s之后 dst:www.codersrc.com 請按任意鍵繼續(xù). . . */三.注意問題
1. _wcslwr_s第二個參數(shù)需要包含’\0’`,否則崩潰!
_strlwr_s(dst, strlen(dst)); //崩潰2.控制臺輸出 WCHAR / wchar_t ( unicode 字符串)只能使用 wprintf,并非printf` ;
輸出多字節(jié)字符串,使用printf函數(shù) ; 輸出寬字節(jié)字符串,使用wprintf 函數(shù);3.如果使用 setlocale 輸出的 unicode 字符串中含有中文,必須通過 setlocale 函數(shù)設(shè)置語言為中文,否則亂碼;
char* p1 = "C/C++教程-猿說編程"; //普通字符串 - 多字節(jié)字符串 wchar_t* p2 = L"C/C++教程-猿說編程"; //unicode字符串 - 字符串有修飾符 Lprintf("p1 :%s \n", p1); wprintf(L"p2 :%s \n", p2); /* 輸出: p1 :C/C++教程-猿說編程 p2 :C/C++??-???? 請按任意鍵繼續(xù). . . */解決辦法:參考上面例子,設(shè)置語言格式即可
setlocale(LC_ALL, "chs"); //chs 表示中文 ,需要包含頭文件 Locale.h四.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C/C++ _wcslwr_s 函數(shù) – unicode 字符串大寫轉(zhuǎn)小寫
總結(jié)
以上是生活随笔為你收集整理的C/C++ _wcslwr_s 函数 – unicode 字符串大写转小写 - C语言零基础入门教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机站的view.php,织梦网站文章内
- 下一篇: linux下字体怎么安装方法,linux