1. 程式人生 > 其它 >C++篇:第九章_字串_知識點大全

C++篇:第九章_字串_知識點大全

  • C++篇為本人學C++時所做筆記(特別是疑難雜點),全是硬貨,雖然看著枯燥但會讓你收益頗豐,可用作學習C++的一大利器

九、字串

  1. 可以用[ ]進行下標訪問

  2. 使用string類需將標頭檔案包含在程式中,不能寫成string.h;對於標頭檔案cstring提供C語言對字串處理的有關函式,而標頭檔案string提供C++對字串處理的新功能

  3. 字串物件不需要NULL字元結尾

  4. string物件允許用“+”或“+=”實現兩個字串連線操作;可以使用關係運算符比大小

  5. 不可以用關係運算符對字元陣列中的字串進行比較,但string物件可以

  6. ‘\0’是 c/c++ 語言中的字串結束符

  7. 字串可以整體輸入、輸出

  8. 字串常量不可改,例:“word”

  9. sizeof(a)是指a的記憶體空間大小(包括最後的\0),strlen() 查詢到“\0”就結束(故不包括最後的\0),但sizeof返回的是真個字串包含'\0'在內佔用的位元組數

  10. 字串中的字元依次儲存在記憶體中一塊連續的區域內,並且把空字元 ' \0' 自動附加到字串的尾部作為字串的結束標誌。故字元個數為 n 的字串在記憶體中應占( n+1 )個位元組

  11. 不同的零所代表的意思:

① ‘0’代表字元0,對應ASCII碼值為0x30(也就是十進位制48)

② '\0'代表空字元(轉義字元)【輸出為空】,對應ASCII碼值為0x00(也就是十進位制 0), 用作字串結束符,但並不是字串的一部分

③ 0 代表數字0,若把 數字0 賦值給 某個字元,對應ASCII碼值為0x00(也就是十進位制)

④ “0”代表一個字串,字串中含有 2個字元,分別是 '0' 和 '\0'

  1. strlen()、sizeof()是針對字元的,而length()(C的)、size()(C++的)是針對字串的

  2. ‘\’不是字元,只有字元'\'

  3. 字串的結束字元為‘\0’,故算字串長度的題時要注意

  4. C++允許在字串上進行整體操作

  5. 不管這個字元變數中有多少個字元,在Visual C++所有字串變數的長度都是16位元組

  6. 字串函式:

① strcpy() :函式將源字串複製到緩衝區。沒有指定要複製字元的具體數目!如果源字串碰巧來自使用者輸入,且沒有專門限制其大小,則有可能會造成緩衝區溢位!

② strcat() :函式非常類似於 strcpy(),它可以將一個字串合併到緩衝區末尾。

③ sprintf()、vsprintf() : 用來格式化文字和將其存入緩衝區的通用函式

  1. strcmp():比較兩個string長度;strcmp(str1,str2),若str1=str2,則返回零;若str1<str2,則返回負數;若str1>str2,則返回正數

④ strncat():char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字串追加到 dest 所指向的字串的結尾,直到 n 字元長度為止。與strcat函式類似,但可以檢測第一個陣列是否能夠容納第二個字串

⑤ C++裡沒有對應的split()函式