C++的string

来源:互联网 发布:ubuntu vmdk安装 编辑:程序博客网 时间:2024/05/29 16:20

string类型是c++编程中常用的一种数据类型,下面简要总结它的用法。

连接两个string或者连接一个string一个char用+

举例:

#include <iostream>#include <string>int main(){    std::string s1 = "Hello";    std::string s2 = "world";    std::cout << s1 + ' ' + s2 + "!\n";}

注意:+两边要有一边是string类型的,最后才会返回是string,如果两边都是char,则最后返回的是两个char类型的相加结果。

    //char + char = char    string a = "";    char b = '2';    //计算的是49+50,转换成char最后a="c";
    string a = "";    char b = '2';    a = a+(char)(1 + '0') + b;    //第一个加号重载的是string的+,所以最后得到的结果是a="12"    //注意,如果这里写成 a += (char)(1 + '0') + b;则得到的结果也是“c”

输出字符串string

方法一:之前以为不能直接输出,所以用循环输出

    string long_str = "afdafda";    for (char str:long_str )    {        cout << str;    }

方法二:查看了cpprefrence里面的string类的成员函数,发现有一个<<>> 的重载
但是要记的#include<string>

    #include<string>    string long_str = "afdafda";    cout<<long_str;
    //输入输出重载例子    #include <iostream>    #include <string>    #include <sstream>    int main()    {        std::string greeting = "Hello, whirled!";        std::istringstream is(greeting);        std::string hello_comma;        is >> hello_comma;        std::cout << greeting << '\n' << hello_comma << '\n';    }

删除string中的元素用erase

(1)basic_string& erase( size_type index = 0, size_type count = npos );(2)iterator erase( iterator position );(3)iterator erase( const_iterator position );(4)iterator erase( iterator first, iterator last );(5)iterator erase( const_iterator first, const_iterator last );

  最基本的是第一种,两个参数,(index,count) 删除从index开始的count个元素。第二个参数默认值是npos, 也就是说默认删除到末尾。
  

#include <iostream>#include <algorithm>#include <string>int main(){    std::string s = "This is an example";    std::cout << s << '\n';    s.erase(0, 5); // Erase "This "    std::cout << s << '\n';     //这里的find返回的是迭代器,所以调用的是上面的重载(2)    s.erase(std::find(s.begin(), s.end(), ' ')); // Erase ' '    std::cout << s << '\n';    //这里的find返回的是位置,类型是string::size_type,s所以调用的是重载函数(1)    s.erase(s.find(' ')); // Trim from ' ' to the end of the string    std::cout << s << '\n';}

输出结果为

This is an exampleis an exampleisan exampleisan
原创粉丝点击