tft每日頭條

 > 科技

 > c語言中size of怎麼用

c語言中size of怎麼用

科技 更新时间:2024-12-01 02:51:56
3 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'};

如下是一個測試例子:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)1

運行的結果如下:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)2

可以看到,定義了字符數組array,數組名代表首地址,所以,數組名array可以表示一個指針,指向array數組存放數據的内存塊。

那麼,strlen(array); 獲取了array指向内存塊的字符個數。而且,計算字符個數的時候,是遇到字符串結束符 '\0' 字符就認為結束。所以,strlen()函數的返回的字符串長度,不包含字符串的結束符。

那麼,我們可以寫一個測試例子,設置 array[3] = '\0',就是設置數組中下标為3的元素是字符串結束符。測試代碼如下:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)3

程序運行結果如下:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)4

此時,array[6] 中的數據相當于 {'a', 'b', 'c', '\0', 'e', '\0'};那麼,使用strlen()函數獲取字符串個數時,就從array指向的第一個元素開始數,遇到第四個元素是'\0'字符,是字符串結束符。

所以,strlen()遇到字符串結束符之後,結束字符串的長度計算。

5 比較strlen和sizeof區别

C語言中定義了sizeof操作符,獲取一個變量或者類型占據的容量大小。而strlen()是一個函數,獲取字符串的長度。程序測試例子如下:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)5

程序運行結果如下:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)6

可以看到,p1是一個指針,指向一個字符串。那麼,strlen()函數可以獲取該字符串的長度。sizeof運算符,獲取指針變量p1占據的内存空間大小。

那麼,指針變量p1占據4個字節,所以,sizeof(p1)返回4這個數值。

但是,如果sizeof操作符,接收的是一個字符串常量,那麼,它返回該字符串常量占據的内存空間。程序測試例子如下:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)7

程序運行結果如下:

c語言中size of怎麼用(C語言字符串如何使用strlen和sizeof)8

可以看到,sizeof操作符,獲取了 "xxxyy123" 字符串所占據的内存空間。它返回9這個數值,是因為占據了9個字節的内存空間。

注意,"xxxyy123"包含字符串結束符 '\0',所以,總共包含9個字符,占用9個字節的内存空間。而strlen()函數返回字符串的實際字符個數,返回數值8,不包含字符串結束符。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved