天天看點

c語言strlen(c語言strlen計算空格嗎)

c語言裡面的strlen是幹什麼的

strlen()是計算字元串長度的函數,将傳回從字元串首到'\0'之間總共的字元個數,原型為:extern unsigned int strlen(char *s);

是以除非你的a[0]本身就是一個字元串,否則不能這樣使用

另外也可以用這個函數計算從字元串任意位置到'\0'之間的長度

比如:定義char s[20] = {"abcdefg"};

那麼strlen(s)将傳回7;而strlen(&s[3])的結果是4,注意這裡是“&s[3]”是從第三個字元所在的位址開始計算長度。

看一下百度百科中對函數strlen()的解釋,應該對你會有幫助的。計算字元串長度。

再看看别人怎麼說的。

再看看别人怎麼說的。

C語言中strlen什麼用法

strlen為C語言庫函數,包含于string.h中,作用為計算一個字元串(字元數組)中元素的個數,即從數組頭部計數,直到遇到字元串結束符\0為止,計數結果不包括\0.

其聲明為:

unsigned int strlen(char *s);

比如定義字元串:

char *p = "this is for testing";

strlen(p);

傳回的結果就是p中元素的個數,即19。

需要注意的是,strlen并不是絕對安全的,如果在傳入的字元數組的合法範圍内,不存在結束符\0,那麼strlen函數會一直通路下去,超出數組範圍,即出現越界通路。

是以使用strlen時,程式員必須确認參數字元數組中包含\0值,否則會出現不可預知後果。strlen所作的僅僅是一個計數器的工作,它從記憶體的某個位置(可以是字元串開頭,中間某個位置,甚至是某個不确定的記憶體區域)開始掃描,直到碰到第一個字元串結束符'\0'為止,然後傳回計數器值。

原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型為size_t strlen( const char *string );,其中size_t實際上是unsigned int,在VC6.0中可以看到這樣的代碼:typedef unsigned int size_t;。

頭檔案:string.h

格式:strlen (字元數組名)

功能:計算字元串s的(unsigned int型)長度,不包括'\0'在内

說明:傳回s的長度,不包括結束符NULL。

因為字元串是以字元'\0'結尾的,但是這個'\0'在我們的字元串是隐藏的,我們看不到。實際上是有的.例如:

char a[4]="abc";//這裡數組的元素個數至少應該是4,否則此字元串不叫字元串了,隻能叫字元數組了。

strlen判斷一個字元串的結束就是以其末尾的'\0'為界限。其實作代碼可以模拟為以下:

int strlen(char *p)

int i=0;

while(*p++)i++;

return i;

是以他是不包括'\0'這個字元的。__cdecl strlen(const char *);

計算字元串的實際長度(不含字元串結束标志‘\0’),并将計算結果作為函數值傳回。簡單的跟你說strlen是算長度的,比如,你定義int a[10];

如果運算sizeof(a),會傳回40.因為一個int類型占了4個位元組的記憶體空間,10個就占了40位元組

如果運算strlen(a),傳回不一定是40,這要看你在a數組裡面用了多少空間,如果用了4個位元組,就傳回4,如果用滿就是傳回40了尾的'\0'。

繼續閱讀