字元陣列後面缺省會加乙個"\0",當陣列長度不夠的時候,後面的資訊會丟失,假設我們指定了陣列長度13,如:
char str1[13]=;執行結果如下:char str2=;
字元陣列str1的長度為13,但是缺少了「\0」,strlen在計算陣列長度的時候是遇到『\0』時計算就停止,如果不在字元陣列後面加上『\0』,那麼strlen就會一直計算下去,直到遇到記憶體中的』\0』,才停止計算,且strlen是不把\0作為字元算進去的。
如果在給陣列賦值時,把每個字元單獨用引號括起來也會丟失』\0』。如:
char str3=;執行結果:char str4=;
如果希望陣列以』\0』結束,則可以寫成以下三者之一:
(1) char str1[ ]=; //字串賦值char型別在c++中, char型別是』\0』結尾,string型別不(2)str1[ ]=; //人工新增 \0
(3)str1[14]=;//故意給陣列預留乙個空位
C 中字串的結尾標誌 0
0 是轉義字元,意思是告訴程式,這不是數字0。0 和0兩者基本上可以通用,例如 string i 0 和string i 0是一樣的。不過 0 的型別是char型,而0是int型別,所以在大多數計算機上,sizeof 0 4而sizeof 0 1,這在特殊情況下不可通用。另外擴充套件一下,0 與 0...
C 字串長度問題
題目 在寫程式中遇到字串的長度問題,總結一下出錯的地方。string s1 123456 char s2 123456 char s3 123456 cout 列印結果為 6 這表示string字串包含字元的長度 32 表示string型變數占用32個位元組 4 表示char指標佔4個位元組 7 定...
C 替換字串起始 結尾指定的字串
region 替換字串起始位置 開頭 中指定的字串 替換字串起始位置 開頭 中指定的字串 源串 查詢的串 替換的目標串 public static string cutstarstr string s,string searchstr,string replacestr if s.length if...