日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言中的宽字符

發布時間:2025/3/13 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言中的宽字符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寬字符庫函數 我們都知道如何找出一個字符串的長度。例如,如果我們定義了一個指向字符串的指針:

char * pc = "Hello!";

我們可以調用

iLength = strlen(pc);

變量iLength會被設成6,也就是字符串中字符的個數。 好極了!現在讓我們嘗試定義一個指向寬字符串的指針:

wchar_t * pw = L"Hello!";

而且現在我們再次調用strlen:

iLength = strlen(pw);

現在問題出現了。首先,C編譯器會給你一個警告消息,大概是下面這個意思:

'function' : incompatible types - from 'unsigned short *' to 'const char *'

這是在告訴你strlen函數被定義為接受一個指向char的指針,但這里收到的是一個指向無符號短整型的指針。仍然可以編譯運行程序,但你會發現iLength變成了1。發生了什么呢? 字符串"Hello!"中的6個字符包含的16位值如下:

0x0048 0x0065 0x006C 0x006C 0x006F 0x0021

這些值被Intel處理器以下面這種方式存儲在內存中:

48 00 65 00 6C 00 6C 00 6F 00 21 00

strlen函數,假設它試圖找到字符串的長度,計算第一個字節為字符,但然后會認為第二字節是一個表明字符串結尾的零字節。 這個小小的實驗清楚地表明了C語言自身和運行庫函數的細微差別。編譯器將字符串L"Hello! "解釋為一個16位短整型的集合并把它們存儲在wchar_t數組。編譯器還會處理所有數組索引和sizeof操作符,因此這些都會正常工作。但是,程序運行時,運行庫函數(如strlen)是在鏈接時被增加進去的。這些函數期望收到由單字節字符構成的字符串。因此在遇到寬字符串時,它們不會像我們預期那樣執行。 你說,哦,太倒霉了,現在每一個C庫函數都要被重寫,以接受寬字符。嗯,并非每一個C庫函數。只有那些有字符串參數的。而且你并不需要重寫它們,因為重寫已經完成了。 寬字符版本的strlen函數被稱為wcslen("寬字符字符串長度"),并定義在STRING.H(也就是strlen被定義的地方)和WCHAR.H中。strlen函數的聲明如下:

size_t __cdecl strlen(const char*);

而wcslen函數的聲明如下:

size_t __cdecl wcslen(const wchar_t*);

所以現在我們知道了一點:在需要確定一個寬字符串的長度時,我們可以調用以下函數:

iLength = wcslen(pw);

該函數返回的結果是6,也就是字符串中的字符個數。

請記住,在使用寬字符的時候,字符串的字符長度并沒有改變,改變的只是字節長度。

所有你喜愛的C語言中那些使用字符串參數的運行庫函數都有寬字符的版本。

例如,wprintf是寬字符版本的printf。這些函數都被定義在WCHAR.H和定義正常函數的頭文件中。

轉載于:https://www.cnblogs.com/trying/archive/2012/07/16/2863761.html

總結

以上是生活随笔為你收集整理的C语言中的宽字符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美变态绿帽cuckold | 亚洲在线免费看 | 国产99对白在线播放 | 97精品久久人人爽人人爽 | 亚洲一二区在线 | 亚洲av电影一区二区 | 欧洲成人综合网 | 久久久精品人妻一区二区三区色秀 | 色涩涩| 欧美黄色精品 | 午夜精品99| 日本不卡在线播放 | 日韩在线免费视频观看 | 精品人妻无码一区二区三区换脸 | 你懂的网站在线观看 | 色妹av| 一区二区精品视频 | 麻豆av网址| 超级碰在线观看 | 亚洲成年人网站在线观看 | 国产永久在线观看 | 91国产视频在线播放 | 欧美精品毛片 | 日韩精品久久久久久久电影99爱 | 女人十八岁毛片 | 草莓视频18免费观看 | 亚洲一区二区在线电影 | 日韩干 | 亚洲日本成人在线观看 | 小嫩女直喷白浆 | 久久久三级 | 九九九九九热 | 69日本xxxxxxxx96 | 国产免费自拍视频 | 成人毛片18女人毛片免费 | 新版天堂资源中文8在线 | 国产伦理一区二区 | 亚洲欧美另类激情 | 国产乱淫片视频 | 少妇喷白浆| 日韩图色 | 精品国产免费一区二区三区 | 国产欧美精品一区二区色综合朱莉 | 亚洲色成人一区二区三区小说 | 美女裸体跪姿扒开屁股无内裤 | 久久逼逼 | 国产网红女主播精品视频 | 青青草久久爱 | 60分钟| 一级α片免费看刺激高潮视频 | 久久久久国产一区二区三区潘金莲 | 欧美激情欧美激情在线五月 | 日韩久久久久久久久久 | 日韩黄片一区二区三区 | 久久不射视频 | av高清在线免费观看 | 开心激情综合 | 国产激情网站 | 欧美网站免费 | 麻豆视频在线免费看 | 韩产日产国产欧产 | 在线观看免费国产视频 | 人妻无码久久精品人妻 | 黄网地址| 国产精品一区无码 | 欧美成人三级在线 | 国产精品理论片在线观看 | 免费成人av在线播放 | 人妻无码久久一区二区三区免费 | 亚洲国产激情 | 高清国产午夜精品久久久久久 | 男女啊啊啊视频 | 成人在线播放视频 | 亚洲私拍| 狠狠干视频网 | 欧美一级全黄 | 欧美日韩操 | 色哟哟一区二区三区 | 肉性天堂 | 成人毛片观看 | 夜夜操夜夜骑 | 欧美日韩精品久久 | 欧美寡妇性猛交ⅹxxx | 一个人看的视频www 色就是色网站 | 欧美黄色大片免费观看 | 日本不卡免费 | 久久一级电影 | 激情宗合 | 懂色一区二区二区av免费观看 | 欧美三区在线 | 日本人妻一区二区三区 | 二区三区偷拍浴室洗澡视频 | 五月婷婷激情小说 | 综合久久2o19| 日本免费www | 亚洲a人| 岛国av免费观看 | 色天天综合网 | va婷婷 |