使用C語言函數(shù)strlen()
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比廬江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式廬江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋廬江地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
函數(shù)原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型為size_t strlen( const char *string );,其中size_t實(shí)際上是unsigned int,在VC6.0中可以看到這樣的代碼:typedef unsigned int size_t;。
頭文件:string.h
功能:計(jì)算字符串s的(unsigned int型)長度
說明:返回s的長度,不包括結(jié)束符NULL。
程序舉例:
#include string.h
#includestdio.h
int main(void)
{
char s[]="Golden Global View";
printf("%s has %d chars",s,strlen(s));
return 0;
}
1、在c語言中,可以通過庫函數(shù)strlen來計(jì)算字符串的長度,也可以通過循環(huán)計(jì)數(shù)來求取字符串長度。
函數(shù)原型:unsigned
int
strlen(char
*str);
功
能:統(tǒng)計(jì)字符串str中字符的個(gè)數(shù),不包含'\0'
返
回
值:返回字符個(gè)數(shù)
2、用strlen函數(shù)實(shí)現(xiàn):
char str[20];
int len; // 保存數(shù)組的長度
scanf("%s", str);
len = strlen(str); // 計(jì)算字符數(shù)組str的長度
注:需將頭文件#include
添加進(jìn)源文件中。3、用循環(huán)來實(shí)現(xiàn):
char str[20];
int len=0; // 保存數(shù)組的長度
scanf("%s", str);
while(str[len] != '\0') // 未檢測到結(jié)束字符
{
len++; // 統(tǒng)計(jì)字符數(shù)組str的長度
}
第1個(gè)輸出是8
10。sizeof運(yùn)算符得到的是數(shù)組的占用字節(jié)的大小,在定義數(shù)組a的時(shí)候沒有指明大小,編譯器根據(jù)初始化的內(nèi)容來決定a的大小,"abcdefg"是個(gè)字符串,連同表示字符串結(jié)束的'\0'共有8個(gè)字符,1個(gè)字符類型占用1個(gè)字節(jié),所以sizeof(a)是8。在定義數(shù)組b的時(shí)候已經(jīng)指明了大小,所以sizeof(b)是10。
第2個(gè)輸出是5
20。strlen函數(shù)是計(jì)算字符串的長度,字符串以'\0'表示結(jié)束,所以strlen在遇到hello后面的'\0'時(shí)就會(huì)返回。sizeof跟第1個(gè)問題一樣。
正確的答案是5,題目選項(xiàng)有誤。
首先strlen()函數(shù)返回的長度是不包含'\0',
第一個(gè)字符為:a
第二個(gè)字符為:b
第三個(gè)字符為:\n (換行符)
第四個(gè)字符為:2
第五個(gè)字符為:\ (\\轉(zhuǎn)義為\)
所以答案為5。
(下圖為實(shí)際代碼演示)
擴(kuò)展內(nèi)容:
strlen()函數(shù)(C語言函數(shù)):
strlen所作的僅僅是一個(gè)計(jì)數(shù)器的工作,它從內(nèi)存的某個(gè)位置(可以是字符串開頭,中間某個(gè)位置,甚至是某個(gè)不確定的內(nèi)存區(qū)域)開始掃描,直到碰到第一個(gè)字符串結(jié)束符'\0'為止,然后返回計(jì)數(shù)器值(長度不包含'\0')。
參考資料:strlen函數(shù) - 百科
C語言中字符串長度的函數(shù)是strlen(),一個(gè)字符的長度為1;
函數(shù)原型:
unsigned int strlen (char *s);頭文件:
#include string.h參數(shù)說明:s為指定的字符串;
功能說明:strlen()用來計(jì)算指定的字符串s 的長度,不包括結(jié)束字符'\0';
返回值:返回字符串s 的字符數(shù);
注意:strlen() 函數(shù)計(jì)算的是字符串的實(shí)際長度,遇到第一個(gè)'\0'結(jié)束。
示例:
#includestdio.h#includestring.hint main(){ char str[] = "ab\nxyz";//\n為回車字符,占一個(gè)字節(jié) printf("strlen(str)=%d\n", strlen(str)); return 0;}//輸出結(jié)果:strlen(str)=6 收起