C語言strlen()函數(shù):返回字符串的實(shí)際長度

頭文件:#include <string.h>

strlen()函數(shù)用來計算字符串的長度,其原型為:
unsigned int strlen (char *s);

【參數(shù)說明】s為指定的字符串。

strlen()用來計算指定的字符串s 的長度,不包括結(jié)束字符"\0"。

【返回值】返回字符串s 的字符數(shù)。

注意一下字符數(shù)組,例如
char str[100] = "http://see.xidian.edu.cn/cpp/u/biaozhunku/";
定義了一個大小為100的字符數(shù)組,但是僅有開始的11個字符被初始化了,剩下的都是0,所以 sizeof(str) 等于100,strlen(str) 等于11。

如果字符的個數(shù)等于字符數(shù)組的大小,那么strlen()的返回值就無法確定了,例如
char str[6] = "abcxyz";
strlen(str)的返回值將是不確定的。因?yàn)閟tr的結(jié)尾不是0,strlen()會繼續(xù)向后檢索,直到遇到'\0',而這些區(qū)域的內(nèi)容是不確定的。

注意:strlen() 函數(shù)計算的是字符串的實(shí)際長度,遇到第一個'\0'結(jié)束。如果你只定義沒有給它賦初值,這個結(jié)果是不定的,它會從首地址一直找下去,直到遇到'\0'停止。sizeof返回的是變量聲明后所占的內(nèi)存數(shù),不是實(shí)際長度,此外sizeof不是函數(shù),僅僅是一個操作符,strlen()是函數(shù)。

【函數(shù)示例】取得字符串 的長度。

#include<stdio.h>
#include<string.h>
int main()
{
    char *str1 = "http://see.xidian.edu.cn/cpp/u/shipin/";
    char str2[100] = "http://see.xidian.edu.cn/cpp/u/shipin_liming/";
    char str3[5] = "12345";
    printf("strlen(str1)=%d, sizeof(str1)=%d\n", strlen(str1), sizeof(str1));
    printf("strlen(str2)=%d, sizeof(str2)=%d\n", strlen(str2), sizeof(str2));
    printf("strlen(str3)=%d, sizeof(str3)=%d\n", strlen(str3), sizeof(str3));
    return 0;
}

NdkDemo代碼已上傳至Github

如有不正支出,歡迎留言交流!
我的GitHub
我的CSDN
我的簡書
開發(fā)筆記

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容