青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-145  評(píng)論-173  文章-70  trackbacks-0

C/C++中的字符串字面值

 

1.     字符串?dāng)?shù)組的大小如何得到。我們都知道,對(duì)于一個(gè)字符串?dāng)?shù)組,要得到它的大小,有多種辦法,常見(jiàn)的有下面的兩種。

.利用sizeof運(yùn)算符來(lái)實(shí)現(xiàn)。現(xiàn)在假設(shè)有一個(gè)字符數(shù)組str[] = “hello,world”,為了得到的它的長(zhǎng)度,我們利用這種辦法

具體就是sizeof(str) /sizeof(char);結(jié)果是12,比較發(fā)現(xiàn),實(shí)際的字符串大小事11啊,為什么會(huì)得到12的結(jié)果呢?

有這種疑問(wèn),是因?yàn)閷?duì)我們字符數(shù)組沒(méi)有一個(gè)更好的理解。上面初始化一個(gè)字符數(shù)組,是利用字符串來(lái)初始化的,

而字符串的話,默認(rèn)的是會(huì)有一個(gè)以null結(jié)尾的標(biāo)志,這個(gè)具體的就是’\0’,有很多人的程序有問(wèn)題,可能都是因?yàn)檫@里

出現(xiàn)了問(wèn)題,比如數(shù)組沒(méi)有封口,造成了指針?lè)欠ㄔL問(wèn)其他內(nèi)存單元,等等。所以實(shí)際上的長(zhǎng)度就是12.

具體來(lái)說(shuō)說(shuō)這個(gè)原理吧:sizeof是表示計(jì)算大小,即字節(jié)數(shù)。這里以一個(gè)數(shù)組名來(lái)作為參數(shù),就是計(jì)算這個(gè)數(shù)組的大小。

上面說(shuō)到,字符串?dāng)?shù)組的話是有一個(gè)默認(rèn)的null來(lái)封口的,所以,計(jì)算的大小事包括這個(gè)單元的。于是sizeof(str)的大小

就是12 個(gè)字節(jié),然后計(jì)算一個(gè)單元,即一個(gè)字符char類型的占據(jù)的字節(jié)數(shù),也就是1個(gè)字節(jié),兩者相除,就是12的結(jié)果。

.利用循環(huán)來(lái)實(shí)現(xiàn),這個(gè)部分是很多人都常常想到的。因?yàn)橐粋€(gè)字符串來(lái)定義的數(shù)組,默認(rèn)是以null即為的,所以,通過(guò)               循環(huán)遍歷的方式來(lái)實(shí)現(xiàn),這個(gè)方法還是可行的。定義一個(gè)變量i,然后利用for循環(huán),判斷str[i]不為’\0’,即可判斷              得到最后一個(gè)元素的下標(biāo),注意到的是這里是最后一個(gè)字符元素,但是不是最后一個(gè)真正的元素,有一個(gè)null,因此,還                要加上1才是真正的個(gè)數(shù),經(jīng)過(guò)這個(gè)過(guò)程,得到的就是總的長(zhǎng)度。這個(gè)方法比較容易理解。但是容易忽略了最后一個(gè)的作用。                                                                                                實(shí)際上,我們使用的很多C提供的函數(shù),關(guān)于字符串操作的,都需要用到這個(gè)知識(shí),我們?cè)谧鲇?jì)算的時(shí)候,很容易誤以為返                    回的。就是那個(gè)字符串的長(zhǎng)度,從而導(dǎo)致了錯(cuò)誤。實(shí)際在我們拷貝字符串的時(shí)候,尤其要注意這一點(diǎn)。

 

2.  在《C++ Primer》一書(shū)中,將以null結(jié)束的字符數(shù)組稱為字符數(shù)組,標(biāo)準(zhǔn)庫(kù)提供一批處理這類字符數(shù)組的函數(shù),包括strlen,strcmp,strcat,strcpy,strncat,strncpy等等,而這些函數(shù)中的參數(shù),都是以null結(jié)束的字符數(shù)組名,也就是字符數(shù)組的指針,而得到長(zhǎng)度,返回的就是一個(gè)長(zhǎng)度,沒(méi)有包括null這個(gè)單元,所以實(shí)際上,上面的那個(gè)還有一個(gè)方法,可以調(diào)用此函數(shù)來(lái)實(shí)現(xiàn)。當(dāng)然,還有一點(diǎn)要注意的是,strcat連接函數(shù),將右邊的字符串連接到左邊,所以對(duì)于左邊的字符串,一定要準(zhǔn)確的計(jì)算出長(zhǎng)度,如果不慎,就會(huì)溢出,出現(xiàn)嚴(yán)重的錯(cuò)誤。看看下面這個(gè)例子:

Char s1[25] = “hello,world”;  char s2[20] = “0123456789012345678”(剛好是20個(gè)字符,為何,因?yàn)橛幸粋€(gè)null).所以現(xiàn)在的那個(gè)s2[20] = “01234567890123456789”,此時(shí)你會(huì)發(fā)現(xiàn),字符串就有20個(gè),含有一個(gè)null,注意就溢出了,OK

下面,如果我將上面的那個(gè)采用字符串連接函數(shù)來(lái)做,就是strcat(s1,s2),那么又會(huì)出現(xiàn)錯(cuò)誤。因?yàn)橐绯隽恕?span lang=EN-US>

3.C++中提供了一個(gè)標(biāo)準(zhǔn)庫(kù)string來(lái)處理字符串,這個(gè)string類提供了很多操作,是一種更安全的做法,然而了,為了新舊代碼的兼容,需要進(jìn)行兩者之間的轉(zhuǎn)換,而把string的一個(gè)類函數(shù)c_str()返回值是C風(fēng)格字符串。const char *str = st2.c_str();其中st2是一個(gè)string類型的對(duì)象,返回值就是一個(gè)指向它的字符串。 此即為字符串的處理,作為C/C++的字符串值得注意的地方。                                                 

posted on 2009-12-27 18:48 deercoder 閱讀(1370) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费中文字幕日韩欧美| 亚洲淫性视频| 免费影视亚洲| 亚洲精品国精品久久99热| 日韩亚洲成人av在线| 欧美精品成人一区二区在线观看| 99精品国产福利在线观看免费| 亚洲精品一二| 国产日韩精品入口| 美脚丝袜一区二区三区在线观看| 欧美肥婆在线| 羞羞答答国产精品www一本| 美脚丝袜一区二区三区在线观看| 免费91麻豆精品国产自产在线观看| 日韩一级黄色大片| 亚洲欧美在线播放| 亚洲日韩欧美视频一区| 亚洲一级影院| 亚洲黄色小视频| 亚洲一级黄色| 亚洲黄色一区| 性欧美长视频| 一本一道久久综合狠狠老精东影业| 亚洲一二三四久久| 亚洲国产另类精品专区| 亚洲性感激情| 亚洲精品视频二区| 欧美亚洲日本网站| 一区二区日韩| 久久综合伊人77777蜜臀| 午夜精品久久久久久久白皮肤| 日韩一区二区精品| 国语自产在线不卡| 一区二区免费在线观看| 亚洲国产成人tv| 亚洲欧美视频在线| 一本久久a久久免费精品不卡| 久久成人人人人精品欧| 国产一区二区欧美| 亚洲国产99| 在线一区欧美| 欧美日韩免费观看一区三区| 亚洲主播在线播放| 久久精品视频免费| 亚洲女人av| 欧美国产日韩精品免费观看| 久久精品国产久精国产爱| 国产精品99免视看9| 亚洲第一免费播放区| 国内成人精品一区| 亚洲线精品一区二区三区八戒| 日韩五码在线| 欧美激情免费观看| 欧美成人免费播放| 在线看视频不卡| 久久精彩免费视频| 久久久久高清| 狠狠色丁香久久婷婷综合丁香| 午夜精品成人在线视频| 亚洲一区二区在线免费观看视频| 欧美久色视频| 亚洲精品免费观看| 麻豆av一区二区三区| 美女视频黄a大片欧美| 伊大人香蕉综合8在线视| 久久不射2019中文字幕| 久久人人爽人人| 在线不卡视频| 欧美激情第8页| 亚洲美女av在线播放| 亚洲图片在线| 国产精品视频自拍| 欧美一区二区三区婷婷月色 | 一本色道久久综合亚洲精品婷婷 | 亚洲精品一级| 欧美日本一道本| 一二三区精品福利视频| 亚洲午夜在线观看| 国产精品美女一区二区在线观看| 亚洲性夜色噜噜噜7777| 久久成人免费视频| 亚洲国产精品福利| 欧美精品午夜| 亚洲欧美日韩在线不卡| 久久夜色精品亚洲噜噜国产mv| 亚洲激情成人在线| 欧美另类久久久品| 亚洲一级一区| 欧美黄色大片网站| 亚洲伊人第一页| 狠狠干狠狠久久| 欧美激情一区三区| 亚洲制服少妇| 欧美国产在线电影| 亚洲一区二区三区四区视频| 国产自产在线视频一区| 欧美激情区在线播放| 亚洲欧美日韩在线观看a三区| 欧美成人久久| 9l视频自拍蝌蚪9l视频成人| 一区二区在线观看av| 男女精品网站| 亚洲视频中文字幕| 麻豆精品视频在线| 正在播放亚洲一区| 一区二区在线看| 国产精品久久久久久影视| 久久综合狠狠综合久久综青草| 亚洲精品中文字幕女同| 美日韩精品视频免费看| 性色av一区二区三区红粉影视| 亚洲激情成人网| 国产一区二区久久精品| 欧美日韩一区三区| 欧美成人高清视频| 久久大综合网| 亚洲欧美激情四射在线日 | 欧美日韩国产综合网 | 久久婷婷丁香| 午夜在线观看欧美| av成人老司机| 亚洲欧洲精品成人久久奇米网 | 亚洲精品无人区| 在线观看日韩av先锋影音电影院| 国产精品久久久久久影视 | 国产亚洲观看| 国产精品一区二区三区久久| 欧美精品福利视频| 免费看的黄色欧美网站| 久久精品中文字幕免费mv| 亚洲已满18点击进入久久| 一区二区激情视频| 亚洲麻豆av| 日韩视频在线观看免费| 亚洲国产成人一区| 亚洲高清三级视频| 欧美激情一区二区三区在线| 欧美xx69| 欧美国产极速在线| 亚洲福利精品| 最近看过的日韩成人| 亚洲激情成人在线| 亚洲国产一区在线| 亚洲人成人一区二区在线观看| 欧美激情一二三区| 亚洲国产免费| 亚洲乱码国产乱码精品精天堂| 亚洲黄页一区| 日韩午夜精品| 亚洲欧美国产精品va在线观看| 亚洲欧美日本伦理| 久久久91精品| 欧美成熟视频| 欧美特黄一区| 国产亚洲欧美日韩精品| 一区一区视频| 亚洲美女啪啪| 亚洲午夜精品| 久久aⅴ国产紧身牛仔裤| 久久综合国产精品| 亚洲福利专区| 在线视频欧美精品| 欧美在线首页| 日韩午夜一区| 亚洲一区二区三区欧美| 久久精品国产免费观看| 亚洲国产精品ⅴa在线观看| 亚洲精品四区| 欧美一级专区| 欧美不卡高清| 一区二区三区欧美| 久久av最新网址| 欧美激情久久久| 国产手机视频一区二区| 亚洲人成艺术| 欧美一区亚洲| 亚洲精品1区2区| 欧美一区二区三区久久精品 | 亚洲高清免费视频| 亚洲欧美日韩另类| 欧美精品久久久久久久| 国产人妖伪娘一区91| 99国产精品久久久久久久| 欧美一区二区在线| 亚洲国产一区在线| 久久精品五月| 国产精品视频网| 日韩香蕉视频| 欧美成人午夜激情在线| 亚洲欧美日韩网| 欧美黑人多人双交| 激情欧美丁香| 欧美一区二区三区日韩视频| 亚洲激情电影中文字幕| 久久精品夜色噜噜亚洲a∨| 国产精品捆绑调教| 9l国产精品久久久久麻豆| 免费不卡欧美自拍视频| 亚洲欧美成人精品| 欧美日韩在线视频一区|