s1.insert
s1.earse(1,2);//下标为1的位置开始删除2个数据
string filename("test,cpp");
cout<<filename<<endl;//结束以size为准
cout<<filename.c_str()<<endl;//按C方式 结束以'\0'为准
s1.find('x');//找x 返回下标 要求全部匹配
s1.find('/',3);//从下标为3的位置开始找'/'
s1.find_first_of('x');//一个匹配就行
s1.substr(0,2);//从下标为零的位置 截取两个字符 2代表长度
s1.substr(2);//从下标为2的位置截取完
支持大小比较,用的ascii值
把数据转成string类型
int val; double dval;cin>>val>>dval;
string istr=to_string(val);
string dstr=to_string(dval);
string类型转回
val=stoi(istr);
dval=stod(dstr);
#include <iostream>
#include <string>
using namespace std;
//--插入---删除---
void string1()
{
string str("wo lai le");//每个空格的地方插入一个20%
for(size_t i=0;i<str.size();i++)
{
if(srt[i]==' ')
{
str.insert(i,"20%");
i+=3;
}
}
for(size_t i=0;i<str.size();i++)//先插入再删除以达到替换的目的
{
if(str[i]==' ')
{
str.erase(i,1);//下标为i 开始删一个数据
}
}
}
void string1better()
{
string str("wo lai le");
string newstr;
for(size_t i=0;i<str.size();i++)
{
if(str[i]!=' ')
{
newstr+=str[i];
}
else
{
newstr+="%20";
}
}
}
void string2()//--find 查找一个 rfind查找最后一个著出现的
{
string filename("test.cpp");
//查找后缀
size_t pos=filename.find('.');//找.
if(pos!=string::npos)
{
//string suff=filename.substr(pos,filename.size()-pos);//找后缀范围
string suff=filename.substr(pos);
cout<<suff<<endl;
}
}
int main()
{
string1();
return 0;
}
字符串最后一个单词的长度
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin,str);//不用cin输入字符串的原因是
//cin输入时 用空格或换行区分不同字符或字符串
//需连续输入两个空格 字符串内才有空格可以被找到
size_t pos=str.rfind(' ');
if(pos!=string::npos)//找到了
{
cout<<str.size()-pos-1<<endl;
}
else //没找着
{
cout<<str.size()<<endl;
}
return 0;
}