C 字串長度的不同求取方式及差異

2021-07-16 07:02:08 字數 978 閱讀 3100

此執行結果是在32位機情況下,後面標準的為每種情況下的執行結果

#include

#include

#include

using namespace std;

void func(char str_arg[100])

int main(int argc, char **argv)

**解析:

sizeof()求取字元陣列長度會將最後結束符'\0'計算在內,所以sizeof(str)=5;

strlen

只計算字元實際長度

,如strlen(str)=4;

p為指標,指標的長度為4個位元組;

字元陣列str_arg[100]作為形參進行傳遞時,退化為指標,所以sizeof(str_arg[100])=4;而strlen計算實際字元長度strlen(str)=5;

當定義指定大小的字元陣列時,sizeof()求出的為所佔空間大小。

c/c++中 strlen(str)和str.length()和str.size()都可以求字串長度。

其中str.length()和str.size()是用於求string類物件的成員函式

strlen(str)是用於求字元陣列的長度,其引數是char*,求取的是字串實際的字元長度。

size不可用於求指標長度,可用於求string和char *型的字串長度,所求數值為所佔記憶體大小,不為實際大小。

string 轉換成char*   :

string str="hello";

char *c;

c=str.c_str(); 

字串及長度

輸出字串最後乙個字元的長度 s show me your code j 0 for i in s 1 1 if i j 1else break print j 輸出一句話中最長單詞的第乙個單詞和長度 def longestletter s s s.split word s 0 word len le...

c 獲得字元陣列長度及字串長度

1.字串輸入總結 遇到空格結束 2 cin.get 用法1 cin.get 字元變數名 可以用來接收字元 include using namespace std main 請輸入第1個字串 kskr1 請輸入第2個字串 kskr2 請輸入第3個字串 kskr3 輸出m 0 的值 kskr1 輸出m ...

C 字串長度問題

題目 在寫程式中遇到字串的長度問題,總結一下出錯的地方。string s1 123456 char s2 123456 char s3 123456 cout 列印結果為 6 這表示string字串包含字元的長度 32 表示string型變數占用32個位元組 4 表示char指標佔4個位元組 7 定...