陣列 字串長度的計算

2021-07-09 17:46:21 字數 921 閱讀 8735

常見的計算長度的函式有兩個,

sizeof()和strlen(),但是,它們之間的差別還是很大的。

sizeof():主要負責計算陣列的長度;

strlen():主要負責計算字串的長度。

(1)sizeof

():陣列占用位元組除以陣列型別所佔位元組,結果為陣列元素個數

使用方法:sizeof(陣列名)/ sizeof(陣列型別名) 

(2)strlen

():strlen,求

字串有效長度

方法:strlen(字元陣列名)  //結果為字元陣列有效字元長度,

不包括末尾的'\0'

注意:當陣列作為函式引數傳遞時,陣列名代表的是陣列的首址,而非陣列內容,故無法使用sizeof和strlen;

所以,在傳址時,應提供2個引數:1

、陣列名,代表陣列首位址;

2、陣列元素個數,以便確定傳遞的次數。

下面來舉個例子說明一下,不同情況下

sizeof()的用法:

#includeusing namespace std;

void sum(int array[ ])

則所求得的長度為字元陣列的長度,而不是對應的字串的長度,要求字串的長度還需要減1。

即:字串長度=字元陣列長度-1。

原因:儲存字串的字元陣列末尾有乙個'\0'字元,需要去掉它。

對於char a="abcdefg"

sizeof(a)/sizeof(a[0])=8,要求字串長度的話應該減1。

注意:sizeof()在計算時,包括末尾的'\0'

strlen(a)=7,表示的就是字串的長度。

但對於char a={'a','b','c','d','e','f','g'}

sizeof(a)/sizeof(a[0])=7

部分內容參考:

計算字串長度

獲取指定字串的長度,除英文 數字算乙個長度外其餘字元全算兩個長度 public int length string s return len 匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff public static boolean isletter...

計算字串的長度

1 cl abap list utilities dynamic output length 類得靜態方法可以計算出字串長度。以下輸出的是7data lv str type string lv len type i lv char type c lv str abc中國 lv char lv str...

字串的長度計算

int length1 str1.length 計算字串str1的長度 int length2 str2.length 計算字串str2的長度 console.writeline 第乙個字串的長度為 str1 str1.length console.writeline 第二個字串的長度為 str2 ...