strlen實際上是,從參數表示的地址往后找,找到第一個'\0',即串尾。然后計算'\0'至首地址的“距離”,即隔了幾個字符,從而得出長度。
成都創新互聯公司擁有一支富有激情的企業網站制作團隊,在互聯網網站建設行業深耕十載,專業且經驗豐富。十載網站優化營銷經驗,我們已為成百上千中小企業提供了網站制作、成都做網站解決方案,定制設計,設計滿意,售后服務無憂。所有客戶皆提供一年免費網站維護!
char x[]={0xBC,0xDD,0xCA};中,實際上是定義了一個char型的數組,而由于x[0],即0xBC開始往后找,一直到0xCA,都沒'\0',所以會繼續往后。當然,實際上往后找到的是其他值。
改char x[]={0xBC,0xDD,0xCA,0x00};后,應該就是3了。
擴展資料:
strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字符串結束符'\0'為止,然后返回計數器值(長度不包含'\0')。
函數原型
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-百度百科
函數聲明: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()只是統計字符串的長度,統計到'\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的情況,這個根據不同的運行環境而定。
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++語言函數)
本文標題:C語言庫函數strlen,c語言庫函數string
網頁鏈接:http://vcdvsql.cn/article30/hshcpo.html
成都網站建設公司_創新互聯,為您提供外貿建站、做網站、網頁設計公司、網站營銷、網站策劃、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯