网络知识 娱乐 C++:向字符串末尾添加字符的两种方法

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

方法一:append

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

        输出结果:

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

         输出结果:

    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.append("a",0,1)<<endl;//表示向s0字符串插入            
                                            //从"a"字符串0位置开始的一个字符

         输出结果:

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

         输出结果:

    s0: 123456
    s1: 123456
    0x6efec4 0x6efeac

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

方法二:push_back()

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

        输出结果:

    1234

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

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