C語(yǔ)言中測(cè)試字符串長(zhǎng)度的函數(shù)是strlen()
成都創(chuàng)新互聯(lián)提供高防物理服務(wù)器租用、云服務(wù)器、香港服務(wù)器、成都服務(wù)器托管等
函數(shù)原型:
unsigned?int?strlen?(char?*s);
頭文件:
#include?string.h
代碼如下
#includestdio.h
#includestring.h
int?main()
{
char?str[]?=?"aaaaaa";
printf("strlen(str)=%d\n",?strlen(str1));
return?0;
}
strlen()只是統(tǒng)計(jì)字符串的長(zhǎng)度,統(tǒng)計(jì)到'\0'結(jié)束,但不包括'\0',這個(gè)與sizeof()不一樣。
對(duì)于用雙引號(hào)引起來的字符串,系統(tǒng)默認(rèn)最后一位字符為'\0',如你自己定義的:
char a[]="china";
char b[]={"china"};
另外,數(shù)組初始化還可以是一個(gè)字符一個(gè)字符賦值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系統(tǒng)不會(huì)自動(dòng)給你在最末位添加'\0’
所以在統(tǒng)計(jì)char c[]={'c','h','i','n','a'}時(shí),統(tǒng)計(jì)到a時(shí),系統(tǒng)還沒找到\0,所以會(huì)繼續(xù)統(tǒng)計(jì),直到找到'\0'為止。所以就有你第三個(gè)值為11的情況,這個(gè)根據(jù)不同的運(yùn)行環(huán)境而定。
C語(yǔ)言中,計(jì)算字符串長(zhǎng)度的函數(shù)為strlen。
1 形式:
int strlen(const char *s);
2 頭文件:
string.h
3 功能:
計(jì)算字符串s的長(zhǎng)度,并返回。