string的使用

感觉string可能用处不大,毕竟char数组就可以搞定

#include<bits/stdc++.h>
using namespace std;

int main()
{
//1.string的初始化
//    char cs1[100]="adas";
//    string s0;
//    s0="hello asdaff";         //给s0赋初值
//    string s1(s0);          //调用复制构造函数生成s1,s1为s0的复制品
//    cout<<s1<<endl;
//    string s2(s0,3);       //将s0内开始为位置为3的部分当做s2的初值
//    cout<<s2<<endl;
//    string s3(s0,3,4);      //将s0内开始为位置3长度顶多为4的部分当做s3的初值
//    cout<<s3<<endl;
//
//    string s4(cs1);        //将char字符串作为s4的初值
//    cout<<s4<<endl;
//    string s5(cs1,3);       //将char字符串前3个字符作为s5的初值
//    cout<<s5<<endl;
//    string s6(5,'A');       //生成一个字符串,包含5个‘A’字符
//    cout<<s6<<endl;
//    string s7(s0.begin(),s0.begin()+3); //以s0的区间[0,3)内的字符作为初值
//    cout<<s7<<endl;


//2.常用的方法
    char p[100]="adf";
    string s1;
    s1="asd";           //直接赋值
    s1=p;               //用字符指针赋值
    s1=s1+'1';          //在尾部添加一个字符
    string s2;
    s2=s2+s1;           //在尾部添加一个字符串
    s2=s2.append(s1);   //在尾部添加一个字符串
    cout<<s2<<endl;

    s2.insert(s2.begin()+2,'2');    //在某一位置插入字符
    cout<<s2<<endl;

    s2.erase(s2.begin());   //删除某一个元素
    s2.erase(s2.begin(),s2.end()-1);  //删除区间内的元素
    cout<<s2<<endl;

    cout<<s2.length()<<" "<<s2.size()<<endl;    //字符串的长度
    cout<<s1<<endl;

    int a=1,b=2;
    s1.replace(a,b,"abc");  //在位置a处替换原字符串中长度为b的字符串
    cout<<s1<<endl;

    int pos=s1.find("bc");  //寻找s1中的子串,并返回下标
    if(pos<0)//或者(pos==string::npos)
    {
        cout<<"not found"<<endl;
    }
    else
    {
        cout<<pos<<" "<<"found"<<endl;
    }

    string s3="1234546";
    reverse(s3.begin(),s3.end());   //reverse反向排列
    sort(s3.begin(),s3.end());      //排序
    cout<<s3<<endl;

    int num=count(s3.begin(),s3.end(),'1'); //统计某个字符的个数
    cout<<num<<endl;

    int sum=s3.compare("asd");  //字符串进行比较,s3大返回1,s3小返回-1,相等返回0
    cout<<sum<<endl;
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值