C++中有两种字符串:
1.标准库中的字符串,头文件为string,声明时候直接用string s="hello world";
2.C风格字符串,头文件为cstring,声明时候是用的char c[ ] 数组;
注意:C风格字符串使用起来不方便,且极易引发程序漏洞,所以在C++中最好不要用。
1.标准库中的字符串
string s1="hello";
string s2="world";
比较: if(s1=s2) ,if(s1!=s2) ,if(s1>s2) , if(s1<s2)
连接: s1=s2+"123";
复制: s1=s2; 只是把值复制了,s1和s2所指的不是一块内存空间
大小: s1.size();
判空: s1.empty();
2.C风格字符串
char c1[]="hello";
char c2[]="world";
比较: strcmp(c1,c2);
连接: strcat(c1,c2);
复制: strcpy(c1,c2);
大小: strlen(c1);
3.标准库的字符串 与 C风格字符串 的转换(与旧代码的接口)
(1)可直接用char a[]给string赋值
例:char a[]="hello";
string s=a;
cout<<s;
(2)string提供了一个名为c_str的成员函数,把string转换为const char *
例:string s="hello";
const char *a=s.c_str();
cout<<a<<endl;