String
初始化
声明:
string s1; 默认构造函数,s1为空串
string s2(s1); 将s2初始化为s1的一个副本
string s3("valuee"); 将s3初始化一个字符串面值副本
string s4(n,'c'); 将s4 初始化为字符'c'的n个副本
读入:
cin>>s5; 读取有效字符到**遇到空格**
getline(cin,s6); 读取字符到**遇到换行**,空格可读入,直到‘\n’结束('\n'不会被读入)
getline(cin,s7,'a'); 一个直到‘a’结束,其中任何字符包括'\n'都能够读入
操作
s.empty() 判断是否为空
s.size() 或 s.length() 返回字符的个数
s[n] 返回位置为n的字符,**从0开始**计数
string支持+连接两个string或一个string与字符串,但两个字符串是不能用+连接的。(+操作符等效于s.append())
==和!=也是可以用的
函数
s.insert(it,p); 把字符串p插入到it的位置
s.insert(p,s2,poe2,len); 在下标p**之前**插入s2下标从poe2开始长度为len的元素
s.insert(pos,cp,len); 下标pos**之前**插入cp数组的前len个元素
s.assign(n,t); 用n个t的副本替换s
a.assign(s1,pos2,len);从s1的下标pos2开始连续替换len个。
s.replace (3,3,"good") ; 从第三个起连续三个替换为good
s.substr(i,j) 截取s串中从i到j的子串
string::npos 字符串结束的pos
s.erase(3) 删除第四个元素
s.erase (0,4) 删除第一到第五个元素
【string的下标是从0开始的】
s.find ( " cat " ) ; 超找第一个出现的字符串”cat“,返回其下标值,查不到返回string::npos,也可查找字符;
s.append(args); 将args接到s的后面【相当于s+args】
s.compare ( " good " ) ; s与”good“比较相等返回0,比"good"大返回1,小则返回-1;
reverse ( s.begin(), s.end () ); 反向排序函数,即字符串反转函数
map
#include <map>
map<string,int> dict;
dict.insert(pair(s1,n1));
UDT_MAP_INT_CSTRING::iterator it=dict.find(key);
dict.count(key);