strlen()只是統(tǒng)計字符串的長度,統(tǒng)計到'\0'結束,但不包括'\0',這個與sizeof()不一樣。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、石龍網(wǎng)站維護、網(wǎng)站推廣。
對于用雙引號引起來的字符串,系統(tǒng)默認最后一位字符為'\0',如你自己定義的:
char a[]="china";
char b[]={"china"};
另外,數(shù)組初始化還可以是一個字符一個字符賦值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系統(tǒng)不會自動給你在最末位添加'\0’
所以在統(tǒng)計char c[]={'c','h','i','n','a'}時,統(tǒng)計到a時,系統(tǒng)還沒找到\0,所以會繼續(xù)統(tǒng)計,直到找到'\0'為止。所以就有你第三個值為11的情況,這個根據(jù)不同的運行環(huán)境而定。
函數(shù)聲明:extern unsigned int strlen(char *s);
所屬函數(shù)庫:string.h
功能:返回s所指的字符串的長度,其中字符串必須以’\0’結尾
參數(shù):s為字符串的初始地址
使用舉例:
代碼如下
編譯運行結果
說明:
函數(shù)strlen比較容易理解,其功能和sizeof很容易混淆。其中sizeof指的是字符串聲明后占用的內(nèi)存長度,它就是一個操作符,不是函數(shù);而strlen則是一個函數(shù),它從第一個字節(jié)開始往后數(shù),直到遇見了’\0’,則停止
第一 string頭文件中的函數(shù)strlen 只可以用來測試字符型數(shù)組的長度,其他類型不可以
第二 如果要測試int 修改原函數(shù)中的參數(shù),會導致數(shù)組長度變長(計算機會一直找下去,直到遇到\0)
第三 如果是字符數(shù)組,當里面的字符數(shù)少于數(shù)組長度時,可以正常輸出用strlen,如果等于數(shù)組長度,則會出現(xiàn)問題
函數(shù)介紹:
(推薦教程:c語言教程)
strlen()函數(shù)用于計算字符串的長度,直到空結束字符,但不包括空結束字符。
語法結構:
size_t strlen(const char *str)
參數(shù)說明:
str -- 要計算長度的字符串。
返回值:
該函數(shù)返回字符串的長度
strlen()是讀取字符串長度的意思,舉例如下
char a[]={'a','b','c'};
return strlen(a);
返回字符串a(chǎn)的長度,是3。
需要注意的是,strlen()函數(shù)需要string.h的頭文件。
如有疑問請您追問。
strlen:計算字符串長度的庫函數(shù)名。
str:通常,程序員喜歡用它作 字符串 變量名。它是string(英文詞字符串的縮寫)。
len:通常,程序員喜歡用它作 變量名。它是 length(英文詞長度的縮寫)。
例如:
char str[20]="I am a student";
int len;
len = strlen(str);
printf("the string length is: %d",len);
擴展資料:
函數(shù)原型
extern?unsigned?int?strlen(char?*s);
在Visual C++ 6.0或Dev-C++中,原型為size_t?strlen(const?char?*string);,其中size_t實際上是unsigned int,在VC6.0或Dev-C++中可以看到這樣的代碼:
typedef?unsigned?int?size_t;
頭文件:string.h或cstring
格式:strlen (字符指針表達式)
功能:計算給定字符串的(unsigned int型)長度,不包括'\0'在內(nèi)
說明:返回s的長度,不包括結束符NULL。
strlen(char*)函數(shù)求的是字符串的實際長度,它求得方法是從開始到遇到第一個'\0',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首地址一直找下去,直到遇到'\0'停止。
參考資料來源:百度百科-strlen (C/C++語言函數(shù))
\\ --------------1
141-------------3
\141------------1
abc-------------3
\t----------------1
轉(zhuǎn)義序列:
\\ 反斜杠
\a 警告
\b 退格
\f 換頁
\n 換行
\r 回車
\t 跳格
\v 垂直跳格
\ddd ddd 是 1、2 或 3 位八進制數(shù)字。這些轉(zhuǎn)義序列作為由八進制數(shù)指定的具有數(shù)字值的字節(jié)顯示。
strlen(char *)
作用:檢測字符串實際長度。
如:char s[]="1234567";
int a=strlen(s);//a=7
實際上strlen(char *)檢測的是'\0',strlen(char *)碰到'\0'就返回'\0'以前的字符數(shù)。
又如:
char f[]="123456\01111";
int b=strlen(f);//b=6,因為遇到了'\0'
擴展資料
strlen(char*)函數(shù)求的是字符串的實際長度,它求得方法是從開始到遇到第一個'\0',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首地址一直找下去,直到遇到'\0'停止。
⒈sizeof操作符的結果類型是size_t,它在頭文件中typedef為unsigned int類型。
該類型保證能容納實現(xiàn)所建立的最大對象的字節(jié)大小。
⒉sizeof是取字節(jié)運算符(關鍵字),strlen是函數(shù)。
⒊sizeof可以用類型做參數(shù),strlen只能用char*做參數(shù),且必須是以'\0'結尾的。
⒋數(shù)組做sizeof的參數(shù)不退化,傳遞給strlen就退化為指針了。
⒌大部分編譯程序 在編譯的時候就把sizeof計算過了是類型或是變量的長度。這就是sizeof(x)可以用來定義數(shù)組維數(shù)的原因
參考資料:百度百科-strlen
分享標題:c語言strlen函數(shù) c語言strlen函數(shù)例子
網(wǎng)站URL:http://aaarwkj.com/article30/doodjpo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、電子商務、面包屑導航、靜態(tài)網(wǎng)站、標簽優(yōu)化、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)