方法
字符串方法
string 字符串的增删改查
插入字符串
在原串下标为 pos 的字符前插入字符串
s1.insert(pos,s2)
在 s1 字符串的下标 pos 的位置上插入字符串 s2
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
string s2 = "welcome ";
//在原s1字符串的下标0的位置上插入字符串s2
s1.insert(0,s2);
cout << "s1:" << s1 << endl;
return 0;
}运行结果:
s1:welcome oldmoon在原串下标为 pos 的字符前插入 n 个字符 char
s1.insert(pos,n,char)
在 s1 字符串的下标 pos 的位置上插入 n 个字符 char
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
char c = 'h';
//在原s1字符串的下标0的位置上插入3个字符h
s1.insert(0,3,c);
cout << "s1:" << s1 << endl;
return 0;
}运行结果:
s1:hhholdmoons2 从下标为 pos2 开始数的 len 个字符插在 s1 串下标为 pos1 的字符位置上
s1.insert(pos1,s2,pos2,len)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
string s2 = "hello,world" ;
//将字符串s2从下标为0的h开始数6个字符,分别是hello, ,插入s1串的下标为0的字符位置上
s1.insert(0,s2,0,6);
cout << "s1:" << s1 << endl;
return 0;
}运行结果:
s1:hello,oldmoon删除字符串
首先是删除该位置的字符
s.erase(string:: iterator it);//删除 it 位置的字符
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
//删除第4个位置上的字符
s1.erase(s1.begin() + 4);
cout << "s1:" << s1 << endl;
return 0;
}运行结果:
s1:oldmoms1.begin()函数返回一个迭代器,指向字符串的第 1 个元素,s1.begin() + 4 指向字符串中的第 4 个元素。
删除一段的内容
s.erase(s.first,s.last)
删除 first-last 之间的所有元素
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
//删除从第3个位置开始到最后的中间所有字符串
s1.erase(s1.begin() + 3,s1.end());
cout << "s1:" << s1 << endl;
return 0;
}运行结果:
s1:old默认第 0 个位置开始数起!
删除某位置后一段长度的元素
s.erase(int a,int n)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
//删除从下标3开始的4个字符
s1.erase(3,4);
cout << "s1:" << s1 << endl;
return 0;
}运行结果:
s1:old提取子字符串
s.substr(pos, len)
在 s 字符串中提取从 pos 开始的 len 个字符,pos 默认是 0,len 默认值是 s.size()-pos,即不加参数会默认拷贝整个 s。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
//在s1字符串中提取整个字符串赋值给s2
string s2 = s1.substr();
//在s1字符串中提取从下标3开始长度为4的子字符串赋值给s3
string s3 = s1.substr(3,4);
////在s1字符串中提取从下标2开始到尾的字符串赋值给s4
string s4 = s1.substr(2);
cout << "s1:" << s1 << endl;
cout << "s2:" << s2 << endl;
cout << "s3:" << s3 << endl;
cout << "s4:" << s4 << endl;
return 0;
}运行结果:
s1:oldmoon
s2:oldmoon
s3:moom
s4:dmoom字符串查找
find() 函数用于在 string 字符串中查找子字符串出现的位置,返回值为第一次出现子串的下标值,找不到返回-1。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
int pos = s1.find("mo");
cout << pos << endl;
pos = s1.find("123");
cout << pos << endl;
return 0;
}运行结果:
3
-1string 其他常用函数
size()/length()
substr()
replace()
stoi() / stoll()
toString()
tolower()
toupper()
size()/length()
返回字符的个数
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s = "oldmoon";
cout << s.size() << endl;
cout << s.length() << endl;
return 0;
}运行结果:
6
6substr(num)
返回从 num 下标开始的所有字符,包括 num 下标对应的字符
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
string s2 = s1.substr(3);
cout << s2 << endl;
return 0;
}运行结果:
moonsubstr(a,b)
返回从 a 下标开始的 b 个字符,包括 a 下标对应的字符
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "oldmoon";
string s2 = s1.substr(3,4);
cout << s2 << endl;
return 0;
}运行结果:
moonreplace(pos,num,str)
从下标 pos 开始得 num 个字符替换成 str
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1 = "hello,oldmoon";
string s2 = s1.replace(0,5,"welcome");
cout << s2 << endl;
return 0;
}运行结果:
welcome,oldmoonstoi(str)
将数字字符串转成对应整数
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout << stoi("1") + stoi("1") << endl;
return 0;
}运行结果:
12345将字符串“12345”转成数字 12345,在字符串操作中还是很重要的!
如果想转为long long,应该使用stoll()
to_string(int)
将整数转为字符串
#include<bits/stdc++.h>
using namespace std;
int main()
{
int num = 753;
string s = to_string(num)
cout << s << endl;
}运行结果
753tolower()
将大写字母转成小写
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s = 'A';
printf("%c",tolower(s));
return 0;
}运行结果:
atoupper()
将小写字母转成大写
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s = 'a';
printf("%c",toupper(s));
return 0;
}运行结果:
A