常見的計算長度的函式有兩個,
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 ...