在 C++ 中复制后无法打印字符串值
can't print a string value after copy in c++
string s1 = "Hello";
string s2;
copy(s1.begin(), s1.end(), s2.begin());
cout << s2 << endl;
这段代码看起来很简单,但它在最后一行什么也不打印。谁能告诉我有什么问题吗?
目标字符串没有大小。尝试使用std::back_inserter()
:
copy(s1.begin(), s1.end(), std::back_inserter(s2));
您试图复制到s2
的内容,但它是空的,因此产生未定义的行为。
试试这样写:
copy(s1.begin(), s1.end(), std::back_inserter(s2));
……或者:
s2.assign(s1);
…或者是最干净最明显的:
s2 = s1;
如果您只需要将字符串s1
复制到s2
,只需将s1
传递给s2
的构造函数:
string s1 = "Hello";
string s2(s1);
cout << s2 << endl;
相关文章:
- C++ |<<运算符重载和打印字符串
- 反向打印字符串
- C++ 用于在数组中打印字符串的随机数
- C 不打印字符串
- 如何在没有同步的情况下使用多个线程(2、4,8、16 个线程)在循环(10,100、1000 个周期)中打印字符串?
- 尝试打印字符串时"Python Exception <class 'gdb.error'> There is no member named _M_dataplus."
- 使用带有 std::cout 的单引号打印字符串实际上打印了数字
- 使用迭代从链表向后打印字符串
- 如何打印字符串而不是数字
- 使用 for 循环打印字符串数组无法正常工作 (C++)
- C++ 打印字符串的内容
- 如何在空格后打印字符串的其余部分
- 如何在C 中打印字符串向量的向量
- 当我打印字符串时,我不知道它是什么输出
- 尝试以随机字符(长读取)打印字符串返回结果
- 从左到右打印字符串的组合(不是排列)c++
- cout 不能一致地打印字符串和变量值,导致输出未对齐
- C++ cout 在擦除换行符后打印字符串不正确
- 从对象数组打印字符串对象
- C++ 粘贴值和打印字符串