strlen函数
C語言提供了strlen()函數,用于求字符串的長度。函數定義如下:
int strlen (const char *s);
包含的頭文件是:
#include <string.h>
?????? 該函數就是求參數 s 指向字符串的長度。在介紹“數組”的這一章節中,講解了字符串的定義。C語言規定,字符串必須以'\0'字符作為最后一個字符,表示字符串的結束字符,稱為:字符串結束符。字符串結束符'\0'的ASCII是0數值。
??? 例如"abcde"這樣的字符串,實際上包含6個字符,分別是:
'a','b','c','d','e','\0'
??? 可以看到,字符串就是由多個單獨的字符組成,其中,最后一個字符必須是字符串結束符'\0'。
??? 那么,我們可以把一個字符串賦值給字符數組,如下:
char array[6] = {'a','b','c','d','e','\0'};
?????? 如下是一個測試例子:
?????? 運行的結果如下:
?????? 可以看到,定義了字符數組array,數組名代表首地址,所以,數組名array可以表示一個指針,指向array數組存放數據的內存塊。
?????? 那么,strlen(array); 獲取了array指向內存塊的字符個數。而且,計算字符個數的時候,是遇到字符串結束符 '\0' 字符就認為結束。所以,strlen()函數的返回的字符串長度,不包含字符串的結束符。
?????? 那么,我們可以寫一個測試例子,設置 array[3] = '\0',就是設置數組中下標為3的元素是字符串結束符。測試代碼如下:
?????? 程序運行結果如下:
?????? 此時,array[6] 中的數據相當于 {'a', 'b', 'c', '\0', 'e', '\0'};那么,使用strlen()函數獲取字符串個數時,就從array指向的第一個元素開始數,遇到第四個元素是'\0'字符,是字符串結束符。
所以,strlen()遇到字符串結束符之后,結束字符串的長度計算。
韋凱峰 Linux C/C++ 程序設計教程,Linux 系統編程,Openwrt 系統開發,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
總結
- 上一篇: 4款超实用绘图软件
- 下一篇: c语言 段错误 linux