使用strlen 函式返回的長度錯誤的總結

2021-08-19 21:19:00 字數 958 閱讀 4057

今天學習希爾排序時,發現使用strlen()函式返回的長度不正確,然後開始分析錯誤原因。

**如下

int main()

; int len =strlen(a);//設定斷點

for(int j=0;j<8;j++)

printf("%d ",a[j]);

cout發現len的值並非8

然後我就進行測試

根據360百科

strlen(char*)函式求的是字串的實際長度,它求得方法是從開始到遇到第乙個'\0',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首位址一直找下去,直到遇到'\0'停止。

char aa[10];cout

我得出乙個猜想,strlen(a),當a並非字串陣列時,編譯有可能出錯(不會自動在末尾加上\0)。

所以應該在末尾加上'\0',這樣才能得到字串實際的長度。

最後我去掉測試的**。

#include#include#includeusing namespace std;
void shellsort(char a)}}

}int main()

;int len =strlen(a);

for(int j=0;j<8;j++)

printf("%d ",a[j]);

cout成功執行!

總結:有些時候偷懶不是什麼好事。

C語言strlen 函式 返回字串的長度

標頭檔案 include strlen 函式用來計算字串的長度,其原型為 unsigned int strlen char s 引數說明 s為指定的字串。strlen 用來計算指定的字串s 的長度,不包括結束字元 0 返回值 返回字串s 的字元數。注意一下字元陣列,例如 char str 100 定...

C語言strlen 函式 返回字串的長度

標頭檔案 include strlen 函式用來計算字串的長度,其原型為 unsigned int strlen char s 引數說明 s為指定的字串。strlen 用來計算指定的字串s 的長度,不包括結束字元 0 返回值 返回字串s 的字元數。注意一下字元陣列,例如 char str 100 定...

PHP字串長度計算 strlen 函式

strlen 函式和mb strlen 函式 在php中,函式strlen 返回字串的長度。函式原型如下 int strlen string string input 引數string input為要處理的字串。strlen 函式返回字串所佔的位元組長度,乙個英文本母 數字 各種符號均佔乙個位元組,...