C語言字串長度

2021-07-25 14:16:32 字數 1204 閱讀 1080

c語言字串長度的計算是程式設計時常用到的,也是求職時必考的一項。

c語言本身不限制字串的長度,因而程式必須掃瞄完整個字串後才能確定字串的長度。

在程式裡,一般會用strlen()函式或sizeof來獲取乙個字串的長度,但這2種方法獲取的字串的長度其實是不一樣,我們用如下函式進行測試:

[cpp]view plain

copy

void

test6()  

;  char

s3 = 

"hello\0 world"

;  char

s4 = ;     

printf("%d\t%d\t%d\t%d\n"

,strlen(s1),strlen(s2),strlen(s3),strlen(s4));  

printf("%d\t%d\t%d\t%d\n"

,sizeof

(s1),

sizeof

(s2),

sizeof

(s3),

sizeof

(s4));  

}  

注意,該函式裡面定義了4個字串,基本資料都是「hello world",但需要注意的是,字串s1和s2給定了字串陣列的大小為20,然後使用2種方式進行賦值;字串s3和s4是s1和s2對比的字串,區別就是s3和s4字串中間插入了乙個'\0'。該函式執行的結果如下:

從執行結果可以看出,strlen()函式和sizeof求字串長度需要注意下面幾點:

1. strlen函式求得的字串長度是從字串第乙個元素到第乙個'\0'之間元素的個數(如果字串中間有'\0',則結果不是整個字串的長度),同時不包括該'\0'

2. sizeof求得的結果是儲存該字串的變數占用的空間大小,因而一定會包括'\0'.若'\0'後還有空餘的空間,也會包含到結果裡面

解釋(與2種求值方式的實現原理有關):

1. strlen()的一種實現就是遍歷字串,遇到'\0'就終止,因而返回的結果是第乙個'\0'前字元元素的個數

2. sizeof 常用來求變數占用記憶體空間的大小,因而它返回的是儲存字串的變數所占用的記憶體空間大小,用來求字串的長度,只在特定情況下可行,即字元陣列剛好被乙個字串佔滿。

C語言求字串長度

有兩種方法 第一種 非遞迴 思想很簡單就是呼叫庫函式中的strlen 函式即可 如下所示 include includeint main 第二種 遞迴 思想就是大問題化成小問題,求字串長度莫非就是字串中的字母個數相加,例如hello就是5個字母即它的字串長度就是5。遞迴滿足的兩個條件是 1.自己呼叫...

C 語言之求字串長度

求字串長度,我們可以通過庫中自帶的strlen 函式,也可以通過字元陣列來進行計算,還可以通過字串指標來計算。下面的 便是通過字串指標來操作的。求字串長度 include include 求字串長度 int strlen self char string return length int main...

字串長度C語言版

題目描述 在右側我們給出了乙個已經基本完成的程式,讀入了乙個字串,呼叫了乙個叫str len的函式來計算這個字串的長度,並輸出。聰明的你應該已經發現了,這個叫str len的函式並沒有完成,在不修改函式原型的情況下,請完成str len函式,實現我們上述的功能吧。樣例輸入 abcdefg 樣例輸出 ...