c++ string的简单使用

获取一行字符串

string s;
getline(cin,s);

字符串的拼接

c++中string对象重载了+=运算符,可以自由地进行字符串的拼接操作

    string s;  //创建了一个空字符串
    s+="Hello ";
    s+="World";
    s+='5';      //可拼接char字符
    s+='\n';    //换行符
    s+=65;      //直接拼接ascii码,65对应的字符为'A'
    s+='0'+5;   //对'0'的ASCII偏移指定大小,可拼接一个数字字符
    cout<<s<<endl;

输出结果:

Hello World5
A5

字符串排序(使用stl中的algorithm)

    string s="293847102";
    sort(s.begin(),s.end());
    cout<<s<<endl;

输出结果:

012234789

erase函数

删除首字符

    string s="293847102";
    s.erase(s.begin());  //删除0号字符
    cout<<s;

运行结果:

93847102

删除n号字符(以下代码示例删除3号索引字符)

    string s="293847102";
    s.erase(s.begin()+3);
    cout<<s;

运行结果:

29347102

删除尾字符

    string s="293847102";
    s.erase(s.end()-1); //end()指向字符串最后一个字符的下一个字符'\0'
    cout<<s;

输出结果:

29384710

字符串截取函数substr

s.substr(起始位置,截取长度)

代码如下,

    string s="HelloWorld";
    s=s.substr(0,5);
    cout<<s;

运行结果:

Hello

若截取长度<0,则直接从起始位置截取到字符串末尾

    string s="HelloWorld";
    s=s.substr(5,-1);
    cout<<s;

运行结果:

World

获取指定索引的字符

c++的string对象重载了[n]运算符,可以直接像数组那样取元素

   string s="HelloWorld";
   cout<<s[0]<<s[2]<<s[4];

运行结果:

Hlo

遍历字符串

    string s = "HelloWorld";
    cout<<"普通循环遍历"<<endl;
    for(int i=0;i<s.length();i++){
        cout<<s[i];
    }
    cout << "迭代器遍历" << endl;
    for (string::iterator it = s.begin(); it != s.end(); it++) {
        cout << *it;
    }
    cout <<endl<< "通过auto关键字自动类型推导使用迭代器遍历" << endl;
    for (auto it = s.begin(); it != s.end(); it++) {
        cout << *it;
    }
    cout<<endl<<"while循环代替for循环"<<endl;
    string::iterator it = s.begin();
    while(it!=s.end()){
        cout<<*it;
        it++;
    }
    cout<<endl<<"foreach循环遍历"<<endl;
    for(auto it : s){
        cout<<it;
    }

运行结果:

普通循环遍历
HelloWorld
迭代器遍历
HelloWorld
通过auto关键字自动类型推导使用迭代器遍历
HelloWorld
While循环代替for循环
HelloWorld
foreach循环遍历
HelloWorld

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容