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

浅谈C++标准库类型string

程序员文章站 2022-03-24 08:32:28
...

对于string的定义不必过于纠结,可以将其理解成一种比较灵活的字符串类型。

下面主要对定义,初始化和操作string对象作一个简单总结。

一.使用string类型的准备

#include <string>
using namespace std;  //或者 using std::string;

当然,要使用C++实现基本的输入输出操作,#include<iostream>也是不可少的。

二.定义和初始化string对象

下面给出了常用的几种方式:

	string s1;                     //默认初始化,s1为空串
	string s2="Hello World";       //s2的内容是"Hello World"
	string s3(5,'A');              //s3的内容是5个'A'

初始化的过程中也可以使用已经定义的string对象:

	string s4 = "Nice to meet you!"; //s4的内容是"Nice to meet you!"
	string s5(s4, 5);  //s5的内容是s4的第5个字符之后的内容(s4的前5个字符被无视)
	string s6(s4, 8, 4); //s6的内容是是s4的第8个字符之后的4个字符(注:空格也算作字符)

完整代码及运行结果:

浅谈C++标准库类型string

浅谈C++标准库类型string

注:如果只是想定义一个string对象但不初始化,而采用输入的方式将输入内容读取到定义的对象中,一定要记住:

string对象会自动忽略输入开头和结尾的空格,也就是说真正读取的内容从第一个真正的字符开始,直到遇到下一处空白结束

三.部分常用的简单操作

1.比较(两个string对象s1和s2)

原则:a<b<...<z或A<B<...<Z(注:同一字母的大小写为两种字符,大小比较可参考ASCII码值)

①:s1与s2在某些位置上不一致时,结果为第一对不同字符相比较的结果。

②:s1与s2长度不同,且从较短串的第一个字符到最后都与较长串对应位置的字符相等,则较短串小于较长串。

2.相加

例如s1='str' s2='ing' s3=s1+s2 s3的内容则为“string”。

3.对string对象中的每个字符进行处理

C++11提供一种特殊的语句:范围for语句

eg:使用范围for语句输出一个string对象的每个字符

	string s1("abcdefg");
	for (auto c : s1)         //对于s1中的每个字符
		cout << c << endl;
注:部分较老的编译器可能无法运行。