string类基本常见用法(C++)

#include <iostream>
#include <cstring>


using namespace std;


int main()
{
    string str="abcdefgh";
    //按下标去访问
    for(int i=0;i<str.length();i++)
        cout<<str[i]<<" ";
    cout<<endl;
    cout<<"length:"<<str.length()<<endl;

    //string类转化为C语言适用的字符数组
    char ch[10];
    strcpy(ch,str.c_str());        //不能写成ch=str.c_str();
    cout<<ch<<endl;

    //按迭代器去访问
    string::iterator it;
    for(it=str.begin();it!=str.end();it++)
        cout<<*it;
    cout<<endl;

    //字符串拼接
    string str1="hello ",str2="world.",str3;
    str3=str1+str2;       //拼接赋给str3
    str1+=str2;           //str2直接拼接到str1上
    cout<<"str3:"<<str3<<endl;
    cout<<"str1:"<<str1<<endl;

    //字符串比较大小(字典序)
    string str4="abc",str5="xyz";
    if(str4<=str5)
        cout<<"str4<=str5"<<endl;
    else
        cout<<"str4>str5"<<endl;

    //字符串大小
    string str6="qwert";
    cout<<"length:"<<str6.length()<<endl;     //两方法大致一致
    cout<<"size:"<<str6.size()<<endl;

    //字符串中间插入
    string str7="abcdg",str8="EF";
    str7.insert(4,str8);              //在str7[4]处插入字符串str8(即从[4]开始替代)
    cout<<"insert1:"<<str7<<endl;
    str7.insert(str7.begin()+1,str8.begin(),str8.end());
    cout<<"insert2:"<<str7<<endl;

    //删除字符串中元素
    string str9="abcdefgh";
    str9.erase(str9.begin()+2);            //删除单个元素,参数为迭代器it(删除str9[2])
    cout<<"str9:"<<str9<<endl;
    str9.erase(str9.begin()+4,str9.end()); //删除一个区间的元素,区间左闭右开(删除str9[4]~末尾)
    cout<<"str9:"<<str9<<endl;
    str9.erase(1,2);                       //删除从1号位开始的2个字符
    cout<<"str9:"<<str9<<endl;

    //清空字符串内容
    string str10="abc";
    cout<<"str10.length:"<<str10.length()<<endl;
    str10.clear();
    cout<<"str10.length:"<<str10.length()<<endl;

    //寻找子串
    string strA="abcdefgh",strB="bcd",strC="ddd";
    if(strA.find(strB)==string::npos)       //寻找到则返回子串第一个字符所在位置,否则返回string::npos
        cout<<"strB doesn't exist."<<endl;
    else
        cout<<"strB exist in strA:"<<strA.find(strB)<<endl;
    if(strA.find(strC)==string::npos)
        cout<<"strC doesn't exist."<<endl;
    else
        cout<<"strC exist in strA:"<<strA.find(strC)<<endl;

    //替换子串
    //str.replace(pos,len,str2)把str从pos号尾开始,长度为len的子串替换为str2
    //str.replace(it1,it2,str2)把str的迭代器[it1,it2)范围的子串替换为str2
    string strD="LiLi is turning around.",strF="Jake",strG="LiLi";
    cout<<"strD:"<<strD<<endl;
    strD.replace(strD.find(strG),strD.find(strG)+4,strF);   //使用的方法二
    cout<<"strD:"<<strD<<endl;

    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音无八重

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值