c++中关于字符串的操作

版权声明:欢迎转载和交流。 https://blog.csdn.net/Hachi_Lin/article/details/79772874

一.String类的构造函数和析构函数

  • string s;            //生成一个空字符串s
  • string s(str)          //拷贝构造函数 生成str的复制品
  • string s(str,stridx)        //将字符串str内“始于位置stridx”的部分当作字符串的初值
  • string s(str,stridx,strlen)     //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
  • string s(cstr)          //将C字符串作为s的初值
  • string s(chars,chars_len)     //将C字符串前chars_len个字符作为字符串s的初值。
  • string s(num,c)         //生成一个字符串,包含num个c字符
  • string s(beg,end)        //以区间beg;end(不包含end)内的字符作为字符串s的初值
  • s.~string()           //销毁所有字符,释放内存

例子:

# include <iostream>
# include <string>
using namespace std;
int main()
{
    string str1 = "abcdefghijklmn";
    string str2 ("ABCDEFGHIJKLMN");
    string str3 (str1,6);
    string str4 (str1,6,3);

    char cstr[] = {"HelloAmerican"};

    string str5 = cstr;
    string str6 (cstr);
    string str7 (cstr,4);
    string str8 (10,'i');
    string str9 (cstr+5, cstr+9);

    cout<<"str1 = "<<str1<<endl;
    cout<<"str2 = "<<str2<<endl;
    cout<<"str3 = "<<str3<<endl;
    cout<<"str4 = "<<str4<<endl;
    cout<<"str5 = "<<str5<<endl;
    cout<<"str6 = "<<str6<<endl;
    cout<<"str7 = "<<str7<<endl;
    cout<<"str8 = "<<str8<<endl;
    cout<<"str9 = "<<str9<<endl;
    str9.~string();

    return 0;
}

运行结果:

str1 = abcdefghijklmn
str2 = ABCDEFGHIJKLMN
str3 = ghijklmn
str4 = ghi
str5 = HelloAmerican
str6 = HelloAmerican
str7 = Hell
str8 = iiiiiiiiii
str9 = Amer

二.string类函数及相关操作

  • =,assign() //赋以新值
  • swap() //交换两个字符串的内容
  • +=,append(),push_back() //在尾部添加字符
  • insert() //插入字符
  • erase() //删除字符
  • clear() //删除全部字符
  • replace() //替换字符
  • +//串联字符串
  • ==,!=,<,<=,>,>=,compare() //比较字符串
  • size(),length() //返回字符数量
  • max_size() //返回字符的可能最大个数
  • empty() //判断字符串是否为空
  • capacity() //返回重新分配之前的字符容量
  • reserve() //保留一定量内存以容纳一定数量的字符
  • [ ], at() //存取单一字符
  • >>,getline() //从stream读取某值
  • << //将谋值写入stream
  • copy() //将某值赋值为一个C_string
  • c_str() //将内容以C_string返回
  • data() //将内容以字符数组形式返回
  • substr() //返回某个子字符串
  • begin() end() //提供类似STL的迭代器支持
  • rbegin() rend() //逆向迭代器
  • get_allocator() //返回配置器

更多内容请参考:https://blog.csdn.net/fenxinzi557/article/details/51457829

猜你喜欢

转载自blog.csdn.net/Hachi_Lin/article/details/79772874