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;
百度了解一下字符集和字符编码
【相关推荐】
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;
}
运行结果:
永远相信美好🎈