c++string类

string类的初始化方法:

    string s1="jasj";
    string s2("dsj");
    string s3=s1;
    string s4(10,'s');//s4输出结果为10个s,即"ssssssssss"
C++中的string类自带了一套API函数,有无参构造函数,有参构造函数,拷贝构造函数。
string的遍历:

void str()
{
    string a="abcd123";
    //通过数组的方式遍历
    for(int i=0;i<a.length();i++)
    {
        cout<<a[i]<<" "; //该种方式时,出现错误会导致程序中断,而不会向外抛出异常
    }
    cout<<endl;
    //通过迭代器遍历
    for(string::iterator it = a.begin();it!=a.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    try{

        for(int i=0;i<a.length()+3;i++)
        {
            cout<<a.at(i)<<" "; //该语法可以抛异常
        }
     }catch(...){
         cout<<"异常"<<endl;
     }
}
字符指针和string的转换:

void str1()
{
    string s="qwiwei";
    //string类型转换成字符指针
    printf("s:%s",s.c_str());
    char buf[128]={0};
   s.copy(buf,4,0);//注意:这里的copy只负责copy字符,不会在末尾追加'\0',所以需要自己在结尾追加字符串,或者buf初始化为0
   buf[4]='\0';
   cout<<buf<<endl;
}
字符串的连接:

void str2()
{
    string s1="123";
    string s2="456";
    s1=s1+s2;
    cout<<s1<<endl;
    string s3="789";
    string s4="101213";
    s3.append(s4); //连接s4
    cout<<s3<<endl;
}

字符串的查找和替换

void str3()
{
    string s="sss123 sss456 sss789";
    //第一次出现123的下标
   int index = s.find("123",0);
   cout<<index<<endl;
   //出现sss的次数,每一次出现sss的下标
   int offindex = s.find("sss",0);
   while(offindex!=string::npos)
   {
       cout<<offindex<<endl;
       offindex+=1;
       offindex = s.find("sss",offindex);
   }
   //替换,将sss小写换成大写SSS
    int offindex1 = s.find("sss",0);
   while(offindex1!=string::npos)
   {
       cout<<offindex1<<endl;
       s.replace(offindex1,3,"SSS");
       offindex1+=1;
       offindex1 = s.find("sss",offindex1);
   }
   cout<<s<<endl;
}
字符串的删除和插入:

void str4()
{
    string s="lassdflldjs";
    string::iterator it = find(s.begin(),s.end(),'l');
    if(it!=s.end())
    {
        s.erase(it);
    }
    cout<<"s:"<<s<<endl;
    //删除整个字符串
    s.erase(s.begin(),s.end());
    //插入
    string s1="wjksd";
    s1.insert(0,"aaa");
    cout<<"s1:"<<s1<<endl;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值