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