C語言計算字符串長度,可以手動計算也可以拆此使用庫函數(shù)或者sizeof()操作符。
成都創(chuàng)新互聯(lián)公司專注于商河企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都商城網(wǎng)站開發(fā)。商河網(wǎng)站建設(shè)公司,為商河等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站策劃,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
方法:
自定義函數(shù)求長度
使用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ù)求出的字符串長度為有效長度,既不包含字符串末尾結(jié)束符 ‘\0’;
sizeof()操作符求出的長度包含字符串末尾的結(jié)束符 ‘\0’;
當(dāng)在函數(shù)內(nèi)部使用sizeof()求解由函數(shù)的形參傳入的字符數(shù)組的長度時,得到的結(jié)果為指針的長度,既對應(yīng)變量的字節(jié)數(shù),而不是字符串的配雀長度,此處一定要小心。
正確的答案是5,題目選項有誤。
首先strlen()函數(shù)返回的長度是不包含'\0',
第一個字符為:a
第銀早二個字符為:b
第三個字符鋒猛雀為:\n (換行符)
第四個字符為:2
第五個字符為:\ (\\轉(zhuǎn)義為\)
所以答案為5。
(下圖為實際代碼演示)
擴展內(nèi)容:
strlen()函數(shù)(C語言函數(shù)):
strlen所作的僅僅是一個計數(shù)器的工作,它從內(nèi)存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內(nèi)存區(qū)域知拆)開始掃描,直到碰到第一個字符串結(jié)束符'\0'為止,然后返回計數(shù)器值(長度不包含'\0')。
參考資料:strlen函數(shù) - 百科
C語言中,計算字符串長度的函數(shù)為strlen。
1 形式:
int strlen(const char *s);
2 頭文件:
string.h
3 功能廳并:
計算字符串s的長度,并核伏基改謹(jǐn)返回。
1、在c語言中,可以通過庫函數(shù)strlen來計算字符串的長度,也可以通過循環(huán)計數(shù)來求取字符串長度。
函數(shù)原型:unsigned
int
strlen(char
*str);
功
能:統(tǒng)計字符串str中字符的個數(shù),燃返巖不包含'\0'
返
回
值:返回字符個數(shù)
2、用strlen函數(shù)實現(xiàn):
char str[20];
int len; // 保存數(shù)組的長度
scanf("%s", str);
len = strlen(str); // 計算字世穗符數(shù)組str的長度
注:需將頭文件#include
添加進源文件中。3、用循環(huán)來實現(xiàn):
char str[20];
int len=0; // 保存數(shù)組皮御的長度
scanf("%s", str);
while(str[len] != '\0') // 未檢測到結(jié)束字符
{
len++; // 統(tǒng)計字符數(shù)組str的長度
}