C++ 提供了以下兩種類型的字符串表示形式:
-
C 風格字符串
-
C++ 引入的 string 類類型
。字符串實際上是使用 null 字符 '\0' 終止的一維字符數組。因此,一個以 null 結尾的字符串,包含了組成字符串的字符。
由於在數組的末尾存儲了空字符,所以字符數組的大小比單詞 "Hello" 的字符數多一個
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
依據數組初始化規則,您可以把上面的語句寫成以下語句:
char greeting[] = "Hello";
其實,您不需要把 null 字符放在字符串常量的末尾。C++ 編譯器會在初始化數組時,自動把 '\0' 放在字符串的末尾
C++ 中有大量的函數用來操作以 null 結尾的字符串
strcpy(s1, s2);
復制字符串 s2 到字符串 s1。
strcat(s1, s2);
連接字符串 s2 到字符串 s1 的末尾。
strlen(s1);
返回字符串 s1 的長度。
strcmp(s1, s2);
如果 s1 和 s2 是相同的,則返回 0;如果 s1<s2 則返回值小於 0;如果 s1>s2 則返回值大於 0。
strchr(s1, ch);
返回一個指針,指向字符串 s1 中字符 ch 的第一次出現的位置。
strstr(s1, s2);
返回一個指針,指向字符串 s1 中字符串 s2 的第一次出現的位置。
#include<cstring> using namespace std; int main(){ char str[]={'a','b','c','d'}; char str1[]={'a','b','c','d','\0'}; #include<iostream> #include<cstring> using namespace std; int main(){ char str[]={'a','b','c','d'}; char str1[]={'a','b','c','d','\0'}; char str2[strlen(str)]; strcpy(str2,str); cout<<str2; cout<<str<<endl; cout<<str1; return 0; }
C++ 標准庫提供了 string 類類型,
#include<iostream> #include<string> using namespace std; int main(){ string str="hello"; string str2="world"; string str3; str3=str; cout<<"將str賦值給str3"<<str3<<endl; cout<<"拼接str和str2"<<str+str2<<endl; cout<<"str3的長度"<<str3.size(); return 0;
}
注意字符串str3的長度為5 這是因為不同於C語言的字符串 這里沒有\n null字符