C 字串長度問題

2021-07-02 04:09:01 字數 433 閱讀 5581

題目:在寫程式中遇到字串的長度問題,總結一下出錯的地方。

**:

string s1="123456";

char* s2="123456";

char s3="123456";

cout<

列印結果為   6(這表示string字串包含字元的長度)     

32(表示string型變數占用32個位元組)   

4(表示char指標佔4個位元組)    

7(定義為字元陣列,輸出sizeof值則為7,比第乙個多一,是因為字元陣列(s2,s3)中以『\0』結束,而string則不是)

因此在求string變數字元個數時候用s.length()比較合適,而char* s2可以用strlen(s2)(不計\0),char s3可以用strlen(s3)(不計\0)和sizeof(s3). 

C語言字串長度

c語言字串長度的計算是程式設計時常用到的,也是求職時必考的一項。c語言本身不限制字串的長度,因而程式必須掃瞄完整個字串後才能確定字串的長度。在程式裡,一般會用strlen 函式或sizeof來獲取乙個字串的長度,但這2種方法獲取的字串的長度其實是不一樣,我們用如下函式進行測試 cpp view pl...

c 陣列求長度 字串長度

c 求長度的方法很侷限吧,我目前只知道 int a 10 int length sizeof a sizeof a 0 cout length 坑呀坑!寫二分查詢的時候,發現這樣乙個問題,把乙個陣列的位址傳入內部,然後求它的長度和外部的不一樣。直到我寫出下面的程式後就恍然大悟 include usi...

字串長度

當字元全是英文本元的時候,兩者是一樣。這裡主要比較一下,中英文混排的時候,兩個計算結果。測試時編碼方式是utf8 複製 如下 str 中文a字1符 echo strlen str echo echo mb strlen str,utf8 輸出結果 14 6 結果分析 在strlen計算時,對待乙個u...