C語(yǔ)言計(jì)算字符串長(zhǎng)度,可以手動(dòng)計(jì)算也可以使用庫(kù)函數(shù)或者sizeof()操作符。
成都創(chuàng)新互聯(lián)于2013年開始,先為八公山等服務(wù)建站,八公山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為八公山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
方法:
自定義函數(shù)求長(zhǎng)度
使用strlen()函數(shù)
使用sizeof()操作符
自定義函數(shù):
int cont_str(char *s)
{
int i = 0; ? ?
while ( str[i++] != '\0')? ?;
return i;
}
使用string頭文件中的strlen()函數(shù):
strlen(str); //假設(shè)str為待求的字符串?dāng)?shù)組名
使用sizeof()操作符:
sizeof(str)/sizeof(str[0]); //假設(shè)str為待求的字符串?dāng)?shù)組名
注意:
strlen()函數(shù)求出的字符串長(zhǎng)度為有效長(zhǎng)度,既不包含字符串末尾結(jié)束符 ‘\0’;
sizeof()操作符求出的長(zhǎng)度包含字符串末尾的結(jié)束符 ‘\0’;
當(dāng)在函數(shù)內(nèi)部使用sizeof()求解由函數(shù)的形參傳入的字符數(shù)組的長(zhǎng)度時(shí),得到的結(jié)果為指針的長(zhǎng)度,既對(duì)應(yīng)變量的字節(jié)數(shù),而不是字符串的長(zhǎng)度,此處一定要小心。
C語(yǔ)言中字符串長(zhǎng)度的函數(shù)是strlen(),一個(gè)字符的長(zhǎng)度為1;
函數(shù)原型:
unsigned int strlen (char *s);
頭文件:
#include string.h
參數(shù)說(shuō)明:s為指定的字符串;
功能說(shuō)明:strlen()用來(lái)計(jì)算指定的字符串s
的長(zhǎng)度,不包括結(jié)束字符'\0';
返回值:返回字符串s
的字符數(shù);
注意:strlen()
函數(shù)計(jì)算的是字符串的實(shí)際長(zhǎng)度,遇到第一個(gè)'\0'結(jié)束。
示例:
#includestdio.h
#includestring.h
int main()
{
char str[] = "ab\nxyz";//\n為回車字符,占一個(gè)字節(jié)
printf("strlen(str)=%d\n", strlen(str));
return 0;
}
//輸出結(jié)果:strlen(str)=6
getchar()函數(shù)的原型是 int getchar( void )
返回值是整型的
功能是:從標(biāo)準(zhǔn)輸入中讀取一個(gè)字符,也就是鍵盤敲擊字符,只接收單個(gè)字符
可以用gets()函數(shù)來(lái)接收多個(gè)字符
這里的 s 接收的是該字符的ASCII碼,非長(zhǎng)度。
如果從原基礎(chǔ)上改可以這樣
int i;
char s[20]; /*字符串需要長(zhǎng)度*/
gets( s );
i = num( s );
int num( char *s ) /* 這里的指針 ,后面學(xué)得到*/
{
}
套上去就可以了
名稱欄目:c語(yǔ)言計(jì)算文本長(zhǎng)度的函數(shù) c語(yǔ)言求文本文件長(zhǎng)度
標(biāo)題鏈接:http://chinadenli.net/article2/hgpdic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)