c++字符數組與字符串


一、定義
字符數組:存儲字符的數組
字符串 :是使用最頻繁的字符數組,是一個特殊的字符數組。
C++中並沒有專門的字符串的類型,一個字符串實際上就是一個字符數組,與普通字符數組不同的是,字符串的結尾有一個字符\0,表示字符串的結束。
char 可以定義字符數組,也可以定義字符串。

字符串實際上是使用 null 字符 ‘\0’ 終止的一維字符數組。因此,一個以 null 結尾的字符串,包含了組成字符串的字符。
下面的聲明和初始化創建了一個 “Hello” 字符串。由於在數組的末尾存儲了空字符,所以字符數組的大小比單詞 “Hello” 的字符數多一個。

char greeting[6]={'H','e','l','l','o','\0'};

其實,您不需要把 null 字符放在字符串常量的末尾。C++ 編譯器會在初始化數組時,自動把 ‘\0’ 放在字符串的末尾。所以也可以利用下面的形式進行初始化

char greeting[6]="Hello";

以下是 C/C++ 中定義的字符串的內存表示:

字符數組和字符串的區別

C++中,字符數組和字符串都是通過char關鍵字來定義的,但二者不同,顯著的區別就是字符串的長度是字符數目加1,因為包含了\0結束符,而字符數組的長度就是字符的數目。對於字符數組可以通過sizeof求出其長度,但是對於字符串是其長度加上1。因此這個長度沒有意義,為此C++可以用strlen求出字符串的有效內容的長度(不含字符串結束標識\0)。

C++ 中有大量的函數用來操作以 null 結尾的字符串:
序號 函數 功能
1 strcpy(s1,s2) 復制字符串 s2 到字符串 s1
2 strcat(s1,s2) 連接字符串 s2 到字符串 s1 的末尾
3 strlen(s1) 返回字符串 s1 的長度
4 strcmp(s1,s2) 返回s1與s2的比較結果
5 strchr(s1,ch) 返回一個指針,指向字符串s1中字符ch的第一次出現的位置
6 strstr(s1,s2) 返回一個指針,指向字符串s1中s2的第一次出現的位置




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM