- N +

strlen和length的區(qū)別,strlen和length

很多朋友對于strlen和length的區(qū)別和strlen和length不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!

length函數(shù)是計數(shù)函數(shù)嗎

沒有,但是有strlen,可以獲取字符串的長度,要使用此函數(shù),需要包含string.h

c語言中strlen、str、len分別指的是什么意思

strlen--計算字符串長度的庫函數(shù)名。str--通常,程序員喜歡用它作字符串變量名。它是string(英文詞字符串的縮寫)len--通常,程序員喜歡用它作變量名。它是length(英文詞長度的縮寫)。例如:charstr[20]="Iamastudent";intlen;len=strlen(str);printf("thestringlengthis:%d",len);

strlen一個字符占多少長度

strlen一個字符占用兩個字節(jié)的長度。

sizeof和strlen的區(qū)別及使用詳解

1.sizeof操作符的結(jié)果類型是size_t,它在頭文件中typedef為unsignedint類型。該類型保證能容納實現(xiàn)所建立的最大對象的字節(jié)大小。

2.sizeof是算符,strlen是函數(shù)。

3.sizeof可以用類型做參數(shù),strlen只能用char*做參數(shù),且必須是以''\0''結(jié)尾的。sizeof還可以用函數(shù)做參數(shù),比如:shortf();printf("%d\n",sizeof(f()));輸出的結(jié)果是sizeof(short),即2。

4.數(shù)組做sizeof的參數(shù)不退化,傳遞給strlen就退化為指針了。

5.大部分編譯程序在編譯的時候就把sizeof計算過了是類型或是變量的長度這就是sizeof(x)可以用來定義數(shù)組維數(shù)的原因charstr[20]="0123456789";inta=strlen(str);//a=10;intb=sizeof(str);//而b=20;

6.strlen的結(jié)果要在運行的時候才能計算出來,時用來計算字符串的長度,不是類型占內(nèi)存的大小。

7.sizeof后如果是類型必須加括弧,如果是變量名可以不加括弧。這是因為sizeof是個操作符不是個函數(shù)。

8.當(dāng)適用了于一個結(jié)構(gòu)類型時或變量,sizeof返回實際的大小,當(dāng)適用一靜態(tài)地空間數(shù)組,sizeof歸還全部數(shù)組的尺寸。sizeof操作符不能返回動態(tài)地被分派了的數(shù)組或外部的數(shù)組的尺寸

9.數(shù)組作為參數(shù)傳給函數(shù)時傳的是指針而不是數(shù)組,傳遞的是數(shù)組的首地址,如:fun(char[8])fun(char[])都等價于fun(char*)在C++里參數(shù)傳遞數(shù)組永遠都是傳遞指向數(shù)組首元素的指針,編譯器不知道數(shù)組的大小如果想在函數(shù)內(nèi)知道數(shù)組的大小,需要這樣做:進入函數(shù)后用memcpy拷貝出來,長度由另一個形參傳進去fun(unsigedchar*p1,intlen){unsignedchar*buf=newunsignedchar[len+1]memcpy(buf,p1,len);}

我們能常在用到sizeof和strlen的時候,通常是計算字符串?dāng)?shù)組的長度看了上面的詳細解釋,發(fā)現(xiàn)兩者的使用還是有區(qū)別的,從這個例子可以看得很清楚:

charstr[20]="0123456789";inta=strlen(str);//a=10;>>>>strlen計算字符串的長度,以結(jié)束符0x00為字符串結(jié)束。intb=sizeof(str);//而b=20;>>>>sizeof計算的則是分配的數(shù)組str[20]所占的內(nèi)存空間的大小,不受里面存儲的內(nèi)容改變。

上面是對靜態(tài)數(shù)組處理的結(jié)果,如果是對指針,結(jié)果就不一樣了

char*ss="0123456789";sizeof(ss)結(jié)果4===》ss是指向字符串常量的字符指針,sizeof獲得的是一個指針的之所占的空間,應(yīng)該是

長整型的,所以是4sizeof(*ss)結(jié)果1===》*ss是第一個字符其實就是獲得了字符串的第一位'0'所占的內(nèi)存空間,是char類

型的,占了1位

strlen(ss)=10>>>>如果要獲得這個字符串的長度,則一定要使用strlen

str和strlen的區(qū)別

str是字符串類型,strlen是計算字符串長度的函數(shù)。

好了,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!

返回列表
上一篇:
下一篇: