感觉字符串比字符数组好用的多Orz;
自己整理一遍笔记果然清晰多了。
赋值=
用=;
连接+
用+;
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,c;
cin>>a>>b;
c=a+b;
cout<<c;
return 0;
}
求长度str.size()
用str.size();从1开始。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,c;
cin>>a>>b;
cout<<a.size()<<endl<<b.size();
return 0;
}
插入子串str.insert()
str.insert(位置,子串)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,c;
cin>>a>>b;
c=a.insert(2,b);
cout<<a<<endl<<b<<endl<<c;
return 0;
}
a插入完子串后也改变了。
删除子串str.erase()
str.erase(开始位置,删除长度);
不包含开始位置。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b;
cin>>a;
a=a.erase(1,3);
cout<<a;
return 0;
}
查找子串str.find()
str.find(内容,开始位置);
如要从头开始查找,则开始位置是0;
返回第一个查找到的位置。
若没有,返回-1;
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,c;
cin>>a>>b>>c;
int weizhi=a.find(b,0);
cout<<weizhi<<endl;
int weizhi2=a.find(c,0);
cout<<weizhi2;
return 0;
}
取子串str.substr()
str.substr(开始位置,长度)
若要从头开始取,就从0开始。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
a=a.substr(1,4);
cout<<a;
return 0;
}
替换子串str.replace()
str.replace(开始位置,替换长度,替换串);
若是查找替换,则替换第一个找到的位置。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a="ffasdsda";
a=a.replace(a.find("a"),2,"bc");
cout<<a;
return 0;
}
开始位置可以是数字,则该位置的下一位开始替换。
将字符串转换为数字
以转换为double为例:
用stringstream:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a = "0072";
double res;
stringstream ss;
ss << a;
ss >> res;
cout<<res;
return 0;
}
输出72;