- 增
1.1 “+”
str = str + ss;
cout << str << endl; //234561
- 提取字串
2.1 substr
substr(pos): 提取从位置pos开始到末尾的子串。
#include <iostream>
#include <string>
using namespace std;
int main(){
string str = "123456";
//substr(pos): 提取从位置pos开始到末尾的子串。
string a = str.substr(0);
cout << a << endl; // 123456
}
substr(pos, len): 提取从位置pos开始的长度为len的子串
//substr(pos, len): 提取从位置pos开始的长度为len的子串
string b = str.substr(0, 2);
cout << b << endl; // 12
2.2 截取特定字符前后的字符串,例如“.”
string str = "123.456";
string m, n;
m = str.substr(0, str.find('.'));
n = str.substr(str.find(".")+1);
cout << m << " " << n; //123 456
- 删
3.1 erase
string ss = str.substr(0, 3);
str.erase(0, 3); // 删除从0开始的3个字符
str = str + ss;
cout << str << endl; //456123
- 计算string的长度
int len = str.size();
- 字符串排序
sort(str.begin(), str.end());
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int main(){
string str;
cin >> str;
sort(str.begin(), str.end());// dcdcba --> abccdd
cout << str <<endl;
}
- 字符串的倒转
#include <iostream>
#include <string>
#include <bits/stdc++.h>
using namespace std;
int main(){
string str = "123.456";
reverse(str.begin(), str.end());
cout << str; //654.321
}
- 字符串内数字相加
string a = "123456";
string b = "456789";
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
string ans = "";
int carry = 0;
for(int i = 0; i < a.size(); i++){
int sum = (a[i] - '0') + (b[i] - '0') +carry;
int remain = sum %10;
char digit = '0' + remain;;
ans = digit + ans;
carry = sum /10;
}
if(carry == 1) ans = "1"+ ans;
cout << ans << endl; //580245