菜鸟笔记
提升您的技术认知

C++ 向字符串末尾添加字符的两种方法

方法一:append

  • 在字符串末尾添加另一字符串
     string s0="123";//字符串s0
     string s1="456";//字符串s1
     s0.append(s1);
     cout<<"s0: "<

        输出结果:

    s0: 123456
    s1: 456
  • 在字符串末尾添加常量字符串
     string s0="123";//字符串s0
     cout<<"s0: "<

         输出结果:

    s0: 123456
  • 在字符串末尾添加单个字符

        注意:append并没有提供直接插入单个字符的方法,若直接string.append('a');会显示错误

      error: invalid conversion from 'char' to 'const char*' [-fpermissive]|

        但C++提供了方法:

string& append (const string& str, size_t subpos, size_t sublen);

       我们可以使用该方法向字符串末尾添加单个字符。但该方法较为麻烦,可以采用后续介绍的push_back()方法向字符串末尾添加单个字符。

     string s0="123";//字符串s0
     cout<<"s0: "<

         输出结果:

    s0: 123a
  • 总结:在采用append方法,append方法会返回一个字符串的引用。所以也可以采用s1=s0.append("123");
     string s0="123";//字符串s0
     string s1=s0.append("456");
     cout<<"s0: "<

         输出结果:

    s0: 123456
    s1: 123456
    0x6efec4 0x6efeac

        并且可以看到,两者指向的地址并不相同。

方法二:push_back()

     string s0="123";//字符串s0
     s0.push_back('4');
     cout<

        输出结果:

    1234

        需要注意的是,push_back()不能向字符串后添加字符串。否则会出现以下错误:

        error: invalid conversion from 'const char*' to 'char' [-fpermissive]|