浅谈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个字符(注:空格也算作字符)
完整代码及运行结果:
注:如果只是想定义一个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;
注:部分较老的编译器可能无法运行。上一篇: MySQL数据库索引的弊端及合理使用
下一篇: 吐出来就白瞎了