自己救自己系列, 找工作刷题做点总结。每次敲代码脑子就像是没长一样,空空的。
string 类是 STL 中 basic_string 模板实例化得到的模板类。
1、初始化
string s; //初始化
string s="shimuyaa"; //初始化并赋值
string s(10, '0'); //初始话一个长度为10,字符全为0的字符串
2、求长度
// length() 和 size() 均可
int len = s.length();
int len = s.size();
3、插入索引
char b=s[i]; //可通过下表索引第i个字符并赋给b
s.push_back('a'); //可通过push_back在末尾插入某字符
s += 'a'; // += 可用于string拼接
s.pop_back(); //可通过pop_back删除最后一个字符
4、获得子串
c = s.substr(i,j); //截取从第i个字符开始,长度为j的字符串
d = s.substr(i); //截取从第i个字符开始后的字符串
5、对string的字符进行循环
for(char c:s){ //看到c++有这个形式我觉得好神奇!原来在C++11中更新了
}
//如果需要对s中的字符进行修改,使用
for(char& c:s){
c='';
}
//如果遍历过程中不允许进行修改,使用
for(const char& c:s){
}
6、对string反转
# 对字符串s进行反转,无返回值
reverse(s.begin(), s.end());
7、C++中内置的关于“字母数字”判断相关的函数
islower(char c) 是否为小写字母
isupper(char c) 是否为大写字母
isdigit(char c) 是否为数字
isalpha(char c) 是否为字母
isalnum(char c) 是否为字母或者数字
toupper(char c) 字母小转大
tolower(char c) 字母大转小
8、做道题压压惊
Z字型变换: https://leetcode-cn.com/problems/zigzag-conversion/
电话号码的字母组合 https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/