(入门自用)---C++--string(续)--0810

网址 : <string> - C++ Reference 

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值