超详细解说c++string类,c++的string怎么用,它到底有多好用?

c++只吃c的字符串风格,但同时还增加了字符串数据类型:string。string是定义在string头文件之中的,使用前需要使用string头文件

#include 
使用string定义字符串比较简单,主要由以下几种方式:

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的具体用法:
1、访问字符串中的字符

因为string类中重载了[]符号,我们可以直接通过[]来访问字符串的每一个下标对应的字符

string s1="c++,cpp";
s1[5]='+';
s1[6]='+';
2、字符串的连接

在c语言中需要调用函数来实现字符串的连接,但是在c++中,我们只需要使用+号就可以做到字符之间的连接

string s1="雀儿在学习";
string s2="c++";
string s3=s1+s2;
cout << s3;

这样打印出来,就是“雀儿在学习c++”。是不是非常的好用啊?

3、字符串的比较

超详细解说c++string类,c++的string怎么用,它到底有多好用?_第1张图片

在c++中,我们可以直接用<,>,==来判断字符串之间的大小

4、字符串的长度计算

类似于c中的strlen(),c++中的则是length()函数。例如一个字符串是s1,计算它的长度只需要:s1.length()。

5、字符串交换

在c++中,string类提供了交换函数,也就是swap(),不过需要注意,他只能交换string类的字符串,不能交换c语言风格的字符串。

超详细解说c++string类,c++的string怎么用,它到底有多好用?_第2张图片


每日金句:

        以蝼蚁之行,展鸿鹄之志。

                                                                                                                                ————雀儿

超详细解说c++string类,c++的string怎么用,它到底有多好用?_第3张图片

你可能感兴趣的:(c++专区,c++,开发语言)