c++只吃c的字符串风格,但同时还增加了字符串数据类型:string。string是定义在string头文件之中的,使用前需要使用string头文件
#include
int main()
{
char str1[100] = "abcde";
char str2[100];
char str3[100] = "xyz";
strcpy(str2, str1);
cout << str2 << endl;
strcat(str1,str3);
cout << str1 << endl;
return 0;
}
这一块是c语言风格的字符串拷贝,其中,既需要考虑开辟的空间是否够,还需要不断地使用函数来实现。从而c++在此基础上,优化了字符串的使用。
int main()
{
string s1 = "abc";
string s2 = "xyz";
string s3;
s3 = s1;
cout << s3 << endl;
s1 += s2;
cout << s1 << endl;
if (s1 > s2)
cout << s1 << ">" << s2 << endl;
else if(s1 == s2)
cout << s1 << "==" << s2 << endl;
else
cout << s1 << "<" << s2 << endl;
return 0;
}
上面是c++风格的代码,为什么说c++字符串好用呢?因为它可以自动为你开辟合适的空间,自动为你扩充合适的空间!!这一点非常好用,完美解决了c语言字符串容易内存泄漏的问题。
它添加了什么呢?比如你可以直接对字符串进行加法运算和赋值运算,赋值顾名思义,把右边的值赋给左边,就是简单的字符串复制。而加法,则是直接将两个字符串首尾相连在一起,非常的好用,同样也有+=这种操作,非常的实用!
string s1;
s1="生死虚实,一念之间";
string s2 = "洞天幻化";
string s3 {"长梦一绝"};
如上述代码一样:
第一种呢?叫做字符串赋值。
第二种呢?叫做字符串初始化。
第三种呢?叫做字符串构造string
我们这里来说明一下,在c++中,{}可以用来给各种变量赋值,也是后期类中我们用的最多的一种。
当然,我们这里再次强调一下,定义字符串的时候,我们根本不需要去操心字符串的长度问题或者说是内存问题,c++的string内部会自动处理这些问题
因为string类中重载了[]符号,我们可以直接通过[]来访问字符串的每一个下标对应的字符
string s1="c++,cpp";
s1[5]='+';
s1[6]='+';
在c语言中需要调用函数来实现字符串的连接,但是在c++中,我们只需要使用+号就可以做到字符之间的连接
string s1="雀儿在学习";
string s2="c++";
string s3=s1+s2;
cout << s3;
这样打印出来,就是“雀儿在学习c++”。是不是非常的好用啊?
在c++中,我们可以直接用<,>,==来判断字符串之间的大小
类似于c中的strlen(),c++中的则是length()函数。例如一个字符串是s1,计算它的长度只需要:s1.length()。
在c++中,string类提供了交换函数,也就是swap(),不过需要注意,他只能交换string类的字符串,不能交换c语言风格的字符串。
每日金句:
以蝼蚁之行,展鸿鹄之志。
————雀儿