回覆列表
  • 1 # LuisWuu

    "\0" 是字串的結束符,任何字串之後都會自動加上"\0"。如果字串末尾少了‘\0’跳脫字元,則其在輸出時可能會出現亂碼問題。

    ‘\0’跳脫字元在ASCII表中並不表示阿拉伯數字0,阿拉伯數字0的ASCII碼為48,‘\0’跳脫字元的ASCII碼值為0,它表示的是ASCII控制字元中空字元的含義

    具體來說,‘\0’是C++中字串的結尾標誌,儲存在字串的結尾。比如char cha[5]表示可以放4個字元的陣列,由於c/c++中規定字串的結尾標誌為"\0",它雖然不計入串長,但要佔記憶體空間,而一個漢字一般用兩個位元組表示,且c/c++中如一個數組cha[5],有5個變數,分別是 cha[0] , cha[1] , cha[2] , cha[3] , cha[4]。

    所以cha[5]可以放4個字母(陣列的長度必須比字串的元素個數多1,用以存放字串結束標誌"\0")或者放2個漢字(1個漢字佔2個位元組,1個字母佔一個位元組),cha[5]佔5個位元組記憶體空間。如果字串末尾少了‘\0’跳脫字元,則其在輸出時可能會出現亂碼問題。

    擴充套件資料

    字串主要用於程式設計,概念說明、函式解釋、用法詳述見正文,這裡補充一點:字串在儲存上類似字元陣列,所以它每一位的單個元素都是可以提取的。

    如s=“abcdefghij”,則s[1]=“b”,s[9]="j",而字串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入陣列。

    設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的儲存方式是順序儲存方式和連結儲存方式。

  • 中秋節和大豐收的關聯?
  • 一個結了婚的女人,從剛開始的各種抱怨老公,到最後的理都不想理,是怎樣的心理變化?