参考资料:《21天学通C++》

字符串库

读写字符串

在C++中,可以用iostream库来读写内置类型的值,如int、double等。同样,也可以用iostream和string标准库使用标准输入输出来读写string对象。

例1 简单string的读写

1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string> //包含字符串库
using namespace std;

void main(){
string str; //定义字符串对象
cout << "Please input string:" << endl;
cin >> str;
cout << "The string is:\n" << str << endl;
}

输入输出:

1
2
3
4
Please input string:
Hello World
The string is:
Hello

注意:string类型的输入操作符会忽略字符串开头所有的空格,输入时遇到空格就会停止输入,所以str的值为Hello,也就只输出了Hello。

字符串赋值

可以把一个string类型的对象赋值给另一个string对象,实现简单的字符串赋值操作。

例2 string对象赋值操作

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
using namespace std;

void main(){
string str1, str2;
cout << "Please input str1:" << endl;
cin >> str1;
str2 = str1; //字符串赋值
cout << "str1 is:" << str1 << endl;
cout << "str2 is:" << str2 << endl;
}

输入输出:

1
2
3
4
Please input str1:
HelloWorld
str1 is:HelloWorld
str2 is:HelloWorld

注意:str1不能为中间包含空格的字符串。

字符串比较

字符串比较操作符主要有以下几种:

  • ==:比较两个string对象,如果它们长度相同且含有相同的字符,则返回true,否则返回false。
  • !=:测试两个string对象是否不等。
  • <:测试一个string对象是否小于另一个string对象。
  • <=:测试一个string对象是否小于等于另一个string对象。
  • >:测试一个string对象是否大于另一个string对象。
  • >=:测试一个string对象是否大于等于另一个string对象。

注意:任何一个大写字母都小于对应的小写字母。

字符串长度和空字符串

简单地说,string对象的长度指的是string对象中字符的个数。

可以使用size()函数求字符串长度。

例3 求string对象的长度

1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
using namespace std;

void main(){
string str = ("Welcome to 21 C++");
int num;
num = str.size();
cout << "the length of " << str << " is:" << num << endl;
}

输出:

1
the length of Welcome to 21 C++ is:17

可以使用函数empty()来判断一个string对象是否为空,该函数返回一个bool型值,若为真表示string对象为空,否则为非空。

例4 判断string对象是否为空

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
using namespace std;

void main(){
string str = ("Welcome to 21 C++");
if(str.empty())
cout << "The str is empty." << endl;
else
cout << "The str is not empty." << endl;
}

输出:

1
The str is not empty.

最后更新: 2019年04月02日 12:40

原始链接: qnkcdz0.xyz/2019/04/02/C++学习笔记之字符串/