美文网首页
C++ string的使用

C++ string的使用

作者: 大梦一场三十一 | 来源:发表于2018-03-08 20:09 被阅读0次

为了理解C++ string类的必要性,需要考虑C风格字符串的优势和劣势。
优势:

  • 很简单,底层使用了基本的字符类型和数组结构。
  • 量级轻,如果使用得当,只会占有所需的内存。
  • 很低级,因此可以按操作原始内存的方式轻松操作和复制字符串。
  • 能够很好地被C语言理解——为什么还要学习新事物?
    劣势:
  • 为了模拟一等字符串数据类型,需要付出很多努力。
  • 使用难度大,而且很容易产生难以找到的内存BUG。
  • 没有利用C++的面向对象特性。
  • 要求程序员了解底层的表示方式。

以上来自C++高级编程第三版。

  • string str1("abcd");

  • string str2(5, 'a');
    复制5个a,注意使用单引号。而有趣的是string str2(5,'abc');则会出现5个c;

  • string str3("abcdefghijk",3);
    str3取abc;

  • string str4 ( "abcdefghijk",3,5);
    从第4个字符开始取5个字符,不足4个字符取空,多过4个少于9个时从第4个到最后一个。

  • string str = "abcdefghijk";
    str.substr(3,5);//与上面类似
    注:对于原始字符串来说
    string str = "Hello "World"!";
    string str = R"(Hello "World"!)"
    那么对于字符中出现)"这个字符可以使用以下方式
    string str =R"-(the characters )" are......)-"

  • string str2(str1)

  • string str1 = "abc";string str2 = str;

  • assign用于赋值,拷贝的string的类函数
    string str1("abcdefgh");string str2;
    str2.assign(str1,3);//取前三个字符赋值给 str2
    str2.assign(str1,3,2);//取第三之后的2个字符

  • string str ="abcdefg";
    char ch1 = str[2];

  • char ch2 = str.at(2);//越界后,能够抛出异常被捕获

  • 修改字符
    str[3]='z';
    str.at(4)='x';
    我觉得还是该多注意单引号和双引号

string常用的类函数
  • int lenth =str.length();//返回字符串长度,不包含‘\0'

  • int strSize = str.size();//同length

  • bool flag = str.empty();//判断是否为空

  • compare比较字符,按照字典顺序,比较大小,大于返回1,小于返回-1;等于返回0;
    string str1 ="abc";
    string str2 = "xyz"
    char *ch = "omg";
    int i =str2.compare(str1);
    int j = str2.compare(ch);

  • 字符串的增
    str+=str1;
    str+=ch;
    str.append("xyz");
    str.append("xyz",3);
    str.append("xyz",1,2);//在字符后面添加了xy

  • 字符串的插入
    str.insert(1,"xxx");
    str.insert(1,str1);
    str.insert(1,3,'x');//复制3个x增加在第一位后面,注意单引号

  • 字符串的删除
    str.erase(2,3)//从第三位开始删除3个字符

  • 字符串的替换
    str.replace(1,2,"-------");//从第1个后面的2个字符替换-------;

  • 字符串的交换
    swap(str1,str2);
    str.swap(str2);

-字符串的查找
str.find('c');//寻找c的位置,如果没有寻找到则赋值为-1;
str.find('c',2);//从下标为2开始寻找c,如果没有寻找到则赋值为-1;
str.find(ch);
关于查找函数可以看
http://blog.csdn.net/sr_19930829/article/details/21476287

string函数可以看
http://blog.csdn.net/qiulanzhu/article/details/50450424

接下来是有趣的东西


image.png

相关文章

  • c++中的字符串string和C语言中的字符char

    c++中的字符串string 在c++中使用string类,必须在程序中包含头文件string #include ...

  • [C++之旅] 8 string类型的使用

    [C++之旅] 8 string类型的使用 使用string需包含#include 头文件 初始化string对...

  • string的用法

    1、使用string头文件 要想使用标准C++中string类,必须要包含: 或者 string和wstring的...

  • string对象

    string类型是c++标准模板库设计的数据类型,专门用于字符串处理.在使用c++编程时,优先考虑使用string...

  • 触宝内推-substring-c++

    push_back使用方法C++中string.find()函数与string::npos

  • 2018-05-30 C++& lasagne

    C++ 1.C++中string erase函数的使用erase函数的原型如下: string & erase(s...

  • C++ string的使用

    为了理解C++ string类的必要性,需要考虑C风格字符串的优势和劣势。优势: 很简单,底层使用了基本的字符类型...

  • leetcode6 关于C++ string

    C++中string的输入 使用scanf输入(未自己验证) 首先声明string; 分配空间; 输入首地址; 使...

  • c/c++中把数字变为字符串

    int 转化为 string 使用sprintf().[在C和C++中均可用] 使用stringstream C+...

  • C++--string

    要想使用标准C++中string类,必须要包含 或 下面你就可以使用string/wstring了,它们两分别对应...

网友评论

      本文标题:C++ string的使用

      本文链接:https://www.haomeiwen.com/subject/pdysfftx.html