C++如何獲取字符串長(zhǎng)度
速讀

很顯然size與length是以空格為中斷的,所以len1的長(zhǎng)度還包括了第二個(gè)Ikun前面的空格
Char

strlen()函數(shù):
需要添加頭文件<string.h>,而且參數(shù)只能是char數(shù)組
而且結(jié)尾必須是\0(即字符數(shù)組不能滿,因?yàn)闈M了結(jié)尾就不是\0,會(huì)接著向下檢索到\0為止)
啊哦
char c[6]{"kunkun"};
?這樣是錯(cuò)誤的嗷 直接沒法進(jìn)行編譯,編譯器直接幫我們解決問題2通過上面的圖,我們可以得出strlen()是可以統(tǒng)計(jì)空格的。
String
String 類型對(duì)象包括三種求解字符串長(zhǎng)度的函數(shù):size()?和?length()、?maxsize()?和?capacity():
size() 和 length():這兩個(gè)函數(shù)會(huì)返回 string 類型對(duì)象中的字符個(gè)數(shù),且它們的執(zhí)行效果相同。
max_size():max_size() 函數(shù)返回 string 類型對(duì)象最多包含的字符數(shù)。一旦程序使用長(zhǎng)度超過 max_size() 的 string 操作,編譯器會(huì)拋出 length_error 異常。
capacity():該函數(shù)返回在重新分配內(nèi)存之前,string 類型對(duì)象所能包含的最大字符數(shù)。
string 類型對(duì)象還包括一個(gè) reserve() 函數(shù)。調(diào)用該函數(shù)可以為 string 類型對(duì)象重新分配內(nèi)存。重新分配的大小由其參數(shù)決定。reserve() 的默認(rèn)參數(shù)為 0。
上述幾個(gè)函數(shù)的使用方法如下程序所示:
程序執(zhí)行結(jié)果為:
由此程序可知,string 類型對(duì)象 str_custom 調(diào)用 reserve() 函數(shù)時(shí),似乎并沒有起到重新分配內(nèi)存的目的(筆者所用編譯器為 Visual?C++6.0)。
修改上述代碼,刪除語(yǔ)句 str_custom.reserve (5),在代碼 str_custom = str 之后如下添加代碼:
修改后程序的執(zhí)行結(jié)構(gòu)如下:
重新設(shè)置 string 類型對(duì)象 str_custom 的大小之后,重新求解 str_custom 的大小,其執(zhí)行效果與設(shè)置的數(shù)值一致(均為 5)。
部分摘自http://c.biancheng.net/view/1444.html
? ? ? ? ? ? ??https://blog.csdn.net/m0_51213124/article/details/116091281