标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件。
#include <string>
定义和初始化string对象
string s1; //默认初始化,s1是一个空字符串
string s2=s1; //s2是s1的副本
string s2 (s1); //s2是s1的副本
string s3="hello"; //s3是该字符串字面值的副本
string s3 ("hello"); //s3是字面值"hello"的副本,除了字面值最后的那个空字符外
string s4 (10,'c'); //s4的内容是cccccccccc
string对象上的操作
string的操作 | 功能 |
---|---|
getline(cin,s) | 读取一整行 |
s.empty() | s为空返回true,否则返回false |
s.size() | 返回s中字符的个数 |
s.length() | 返回字符串s的长度 |
s[n] | 返回s中第n个字符的引用,位置n从0计起 |
s1+s2 | 返回s1和s2连接后的结果 |
s1=s2 | 用s2的副本代替s1中原来的字符 |
s1==s2,s1!=s2 | 判断s1和s2中的字符是否完全一样 |
<,<=,>,>= | 利用字符在字典中的顺序进行比较,且对字母的大小写敏感 |
s.substr(p,n) | 返回从s的下标p开始的n个字符组成的字符串,如果n省略就取到底 |
s.erase(p,n) | 删除s中从p开始的n个字符,如果n省略就删到底O(n) |
s1.find(s2,pos) | 从pos位置开始,查找成功时返回第一次出现的下标,失败返回string::npos的值(-1) |
s1.rfind(s2,pos) | 从pos开始从后向前查找字符串s2中字符串在当前串后边第一次出现的下标 |
s1.replace(p,len,s2,pos,len) | 将从p开始的len个字符替换为s2从pos开始的len个字符,后两个参数可以省略 |
s.c_str() | 返回传统的const char * 类型字符串 |
s.data() | 返回一个char * 类型的字符串 |