【发布时间】:2018-07-30 07:43:39
【问题描述】:
我正在尝试将string 中的一些字符分配给另一个string,如下所示:
string s2;
int ind = -1;
for(int i = 0; i < ch; i++)
{
s2[++ind] = s[i];
}
s2[++ind] = '\0';
现在当我尝试使用
打印s2
cout << s2 << endl;
它在黑屏上不打印任何内容。但是当我使用char 数组代替string 声明s2 时,s2 会成功打印。我认为string 和char 数组的字符都可以以相同的方式访问。无法理解为什么会这样。有关于此的一些信息?
【问题讨论】:
-
std::string不是 C 字符串! -
为什么需要 i 和 ind 这两个索引?
-
@ΦXocę 웃 Пepeúpa ツ,使用两个索引没有坏处吧?
-
@Jaya 可能会对内存和性能造成影响,而且 imo 的可读性也稍差。你可以在循环之前声明
i。