字符4:\xff (這個(gè)我不知道怎么解釋?zhuān)?qǐng)其它老師幫助解釋) 字符5:\n printf(%d \n,strlen(stop\0\n\)); 字符4:stop 因?yàn)閟trlen()函數(shù)遇到\0 就結(jié)束了,后面的字符就不去判斷了。
成都做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù)團(tuán)隊(duì)是一支充滿(mǎn)著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶(hù)提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
strlen 用于計(jì)算字符串的長(zhǎng)度。數(shù)組長(zhǎng)度,應(yīng)是指數(shù)組大小,可存放幾個(gè)數(shù)組元素。下面例子 計(jì)算 float 數(shù)組a, char 數(shù)組s 的 數(shù)組長(zhǎng)度,計(jì)算s 里字符串長(zhǎng)度。(sizeof 用來(lái)計(jì)算 變量 和 類(lèi)型 占內(nèi)存的大小,單位是字節(jié)。
]=1234567int a=strlen(s);//a=7 實(shí)際上strlen(char *)檢測(cè)的是\0,strlen(char *)碰到\0就返回\0以前的字符數(shù)。
C語(yǔ)言規(guī)定,對(duì)于沒(méi)有明確初始化的部分,默認(rèn)初始化為0, 這個(gè)和字符串結(jié)束符\0的值是相同的。
1、strlen實(shí)際上是,從參數(shù)表示的地址往后找,找到第一個(gè)\0,即串尾。然后計(jì)算\0至首地址的“距離”,即隔了幾個(gè)字符,從而得出長(zhǎng)度。
2、include stdio.h#include string.hint main(){char s1[20]={\0};char s2[20]={\0};char s3[20]={\0};//如果不定義長(zhǎng)度會(huì)默認(rèn)為1個(gè)長(zhǎng)度,這樣下面會(huì)出錯(cuò)。
3、char s[]=“\\141 \ 141abc\t”;有9個(gè)字符,是\141aabc\t。其中\(zhòng)\為\,\141為八進(jìn)制的,轉(zhuǎn)為十進(jìn)制為97,也就是a。strlen是計(jì)算字符串的位數(shù)。當(dāng)然輸出結(jié)果是9了。
4、是找到第一個(gè)0值就認(rèn)為字符串結(jié)束了。char p[]={‘0’,‘1’,‘2’,‘3’,‘4’};這樣的用strlen返回值是0。其實(shí)要想知道一個(gè)存儲(chǔ)單元的大小,應(yīng)該用sizeof。
5、這是因?yàn)?后面的\0和之后的56連起來(lái)成\056,被解釋為八進(jìn)制ASCII碼.,所以str實(shí)際上成了“123789\0,所以它的長(zhǎng)度剛好是8字節(jié)。希望對(duì)你有幫助。
1、傳說(shuō)常見(jiàn)的一個(gè)筆試題:不使用中間變量求const字符串長(zhǎng)度,即實(shí)現(xiàn)求字符串長(zhǎng)度庫(kù)函數(shù)strlen函數(shù)。
2、strlen是求字符串長(zhǎng)度的函數(shù)。函數(shù)原型:unsigned int strlen(char *s)。參數(shù):s是char類(lèi)型的指針,指向要求長(zhǎng)度的字符串。返回值:返回字符串的長(zhǎng)度,返回類(lèi)型是無(wú)符號(hào)整型。
3、__cdecl strlen(const char );計(jì)算字符串的實(shí)際長(zhǎng)度(不含字符串結(jié)束標(biāo)志‘\0’),并將計(jì)算結(jié)果作為函數(shù)值返回。
4、同理上面的第一個(gè)strlen是作為輸出寬度而存在的,也就是說(shuō)給你字符串長(zhǎng)度個(gè)空間,用于存放字符串長(zhǎng)度的變量。