欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++标准库中的String类型

程序员文章站 2022-07-15 13:37:47
...

一、string类型的基本操作
string 是对C语言中的改进
C++标准库中的String类型接下来看一下怎么手动读入一个字符串的操作

int main()
{
	string s;
	cin >> s;//这样读入字符串是有局限的,遇到空白字符就停止读入了,
             //因此只能读一个单词
             //但是他会把开头遇到的所有空白字符忽略

//那要是想要完整的读入一行字符串应该怎么办呢?
	//那就可以使用下面的函数
	getline(cin, s);

	return 0;
}

习题练习:
编写程序每次读一行字符串,显示一行
每次读一行单词,显示一个单词

int main()
{
	string line;
	//每次读一行
	while (getline(cin, line))
		cout << line << endl;//一次读一行,然后输出一行,Ctrl+Z可以停止读入

	//每次读一个单词
	string word;
	while (cin>>word)
		cout << word << endl;//一次读一个单词,然后输出一个单词,Ctrl+Z可以停止读入
	return 0;
}

下面讲一下C++中string类型常用的操作
size()和empty()
以及string的关系操作符、对象的赋值、两个string对象的相加、还有和字符串字面值的连续操作

#include<iostream>
#include<string>

using namespace std;
int main()
{
	string st("hello");
	st.size();//提取字符串的大小(即字符串的个数)
	string::size_type size = st.size();
 //string::size_type是C++中专门为string类型
 //设计的一个配套的数据类型,来表示string类型的大小
 //因此最好不要用int类型的变量去保存string的大小
 //用配套的类型要比用int安全很多,能防止溢出或者int类型大小不够的问题
 
	//如何判断一个字符串是空的?
	if(st.empty())
	return 0;
}

下面举一些具体的实例:
说明string类型和int之类的数据类型一样可以直接去比较大小

#include<iostream>
#include<string>

using namespace std;
int main()
{
	string a("张飞");
	string b("刘备");

	//比较两个字符串的大小,实际是将字符串
	//转化成ASCII码表的数去比较的,中文也可以直接比较
	//是根据拼音的大小或者字母表的大小进行排序的

	if(a==b)
	if(a>b)
	if(b>a)
	return 0;
}

字符串的加法操作如下:

int main()
{
	string s1("hello");
	string s2("world\n");

	string s3 = s1 + s2;//这个操作直接s2连接到s1的末尾然后赋给s3

	//但是需要注意的是!!!!不能直接对字符串的字面值进行相加!
	//C++中是不允许这样的操作的,其他语言是允许的
	//C++规定要是想执行字符串的直接相加,必须“+”号两边有一个是string类型的变量

	string s4 = "hello" + "sss";//这就是非法的操作

	string s5= "hello" + s1+"sss";//这就是合法的操作
}

最后总结一下C++中的string类型和C语言中表示字符串类型的区别
C++标准库中的String类型

相关标签: C++