C 和C++ 字符串比較


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;
}

image.png

 

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;
}

image.png

注意字符串str3的長度為5 這是因為不同於C語言的字符串 這里沒有\n null字符


免責聲明!

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



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