⑴ c語言中的strlen函數
strlen()只是統計字元串的長度,統計到'\0'結束,但不包括'\0',這個與sizeof()不一樣。
對於用雙引號引起來的字元串,系統默認最後一位字元為'\0',如你自己定義的:
char a[]="china";
char b[]={"china"};
另外,數組初始化還可以是一個字元一個字元賦值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系統不會自動給你在最末位添加'\0』
所以在統計char c[]={'c','h','i','n','a'}時,統計到a時,系統還沒找到\0,所以會繼續統計,直到找到'\0'為止。所以就有你第三個值為11的情況,這個根據不同的運行環境而定。
⑵ c語言中strlen()怎麼用
函數聲明:extern unsigned int strlen(char *s);
所屬函數庫:<string.h>
功能:返回s所指的字元串的長度,其中字元串必須以』\0』結尾
參數:s為字元串的初始地址
使用舉例:
代碼如下
編譯運行結果
說明:
函數strlen比較容易理解,其功能和sizeof很容易混淆。其中sizeof指的是字元串聲明後佔用的內存長度,它就是一個操作符,不是函數;而strlen則是一個函數,它從第一個位元組開始往後數,直到遇見了』\0』,則停止
第一 string頭文件中的函數strlen 只可以用來測試字元型數組的長度,其他類型不可以
第二 如果要測試int 修改原函數中的參數,會導致數組長度變長(計算機會一直找下去,直到遇到\0)
第三 如果是字元數組,當裡面的字元數少於數組長度時,可以正常輸出用strlen,如果等於數組長度,則會出現問題
函數介紹:
(推薦教程:c語言教程)
strlen()函數用於計算字元串的長度,直到空結束字元,但不包括空結束字元。
語法結構:
size_t strlen(const char *str)
參數說明:
str -- 要計算長度的字元串。
返回值:
該函數返回字元串的長度
⑶ c語言 字元數組 字元指針 sizeof strlen 的區別
簡單概括,strlen()返回的是字元數組或者字元指針中的元素個數,sizeof返回的是字元數組中所有元素所佔的總位元組數,對於字元指針,返回的只是指針所佔的位元組數,32位系統上都是4位元組。具體來說有如下幾點區別:
1.
sizeof操作符的結果類型是size_t,它在頭文件中typedef為unsigned
int類型。該類型保證能容納實現所建立的最大對象的位元組大小。
2.
sizeof是算符,strlen是函數。
3.
sizeof可以用類型做參數,strlen只能用char*做參數,且必須是以''\0''結尾的。
4.
數組做sizeof的參數不退化,傳遞給strlen就退化為指針了。
5.
大部分編譯程序在編譯的時候就把sizeof計算過了,是類型或是變數的長度這就是sizeof(x)可以用來定義數組維數的原因。
char
str[20]="0123456789";
//
str是編譯期大小已經固定的數組
int
a=strlen(str);
//
a=10;
//strlen()在運行起確定,計算的是實際長度
int
b=sizeof(str);
//
而b=20;
//sizeof()在編譯期確定,str的類型是int[20],計算的是占據內存的大小
6.
strlen的結果要在運行的時候才能計算出來,是用來計算字元串的實際長度,不是類型占內存的大小。
7.
sizeof後如果是類型必須加括弧,如果是變數名可以不加括弧。這是因為sizeof是個操作符不是個函數。
char
c;
sizeof
c;
//變數名可以不加括弧
8.
當適用於一個結構類型或變數,
sizeof
返回實際的大小,
當適用一靜態地空間數組,
sizeof
歸還全部數組的尺寸。
sizeof
操作符不能返回動態地被分派了的數組或外部的數組的尺寸
⑷ c語言中strlen的用法
__cdecl
strlen(const
char
*);
計算字元串的實際長度(不含字元串結束標志『\0』),並將計算結果作為函數值返回。
⑸ 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]」是從第三個字元所在的地址開始計算長度。
⑹ c語言中strlen是什麼意思
strlen:計算字元串長度的庫函數名。
str:通常,程序員喜歡用它作 字元串 變數名。它是string(英文詞字元串的縮寫)。
len:通常,程序員喜歡用它作 變數名。它是 length(英文詞長度的縮寫)。
例如:
char str[20]="I am a student";
int len;
len = strlen(str);
printf("the string length is: %d",len);
(6)c語言的指針strlen擴展閱讀:
函數原型
externunsignedintstrlen(char*s);
在Visual C++ 6.0或Dev-C++中,原型為size_tstrlen(constchar*string);,其中size_t實際上是unsigned int,在VC6.0或Dev-C++中可以看到這樣的代碼:
typedefunsignedintsize_t;頭文件:string.h或cstring
格式:strlen (字元指針表達式)
功能:計算給定字元串的(unsigned int型)長度,不包括'