c++怎么用string的append方法拼接中文字符?

img

img

c++怎么用string的append方法拼接中文字符?为什么这样写会得到乱码


std::string utf8_str = u8"";
  std::string utf8_rt = u8"我在珠穆朗玛峰";
  utf8_str.append(utf8_rt, 3);
  std::cout << utf8_str << std::endl;

百度了解一下字符集和字符编码


统一一下编码

【相关推荐】



  • 这篇博客: C++string中的append()追加函数中的 C++string中的append()追加函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • basic_string& append(const basic_string& str)
      在原串后追加字符串str

    • basic_string& append(size_type n, char c)
      在原串后追加n个字符c

    • basic_string& append( const basic_string& str, size_type pos, size_type n)
      字符串从str下标为pos开始数的n个字符追加在原串后面

    • basic_string& append(const_iterator first, const_itrator last)
      和上面类似

    代码:

    #include<iostream>
    using namespace std;
    int main()
    {
        string str="hello";
        str=str.append(" hahaha");
        cout<<str<<endl;
    
        string str1="hello ";
        char c='h';
        str1=str1.append(5,c);
        cout<<str1<<endl;
    
        string str2="enjoy yourself.";
        string s2="good evening.";
        str2=str2.append(s2,5,7);
        cout<<str2<<endl;
    
        string str3="enjoy yourself.";
        string s3="good evening.";
        str3=str3.append(s3.begin()+5,s3.begin()+12);
        cout<<str3<<endl;
    
        return 0;
    }
    
    

    运行结果:
    在这里插入图片描述
    永远相信美好🎈


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^