C++标准库中的String类型
程序员文章站
2022-07-15 13:37:47
...
一、string类型的基本操作
string 是对C语言中的改进
接下来看一下怎么手动读入一个字符串的操作
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++笔记——标准库类型string