创建动态Cstring

时间:2013-06-05 19:16:55

标签: c++ cstring

我正面临这个位置,我需要创建一个用户输入大小的动态字符串(所以我尝试使用动态cstring)。

char * S;
int x;

cin >> x;

S = new char[x];

for (int i = 0; i < x; i++) {
    S[i]=' ';        //trying to make it a string of spaces so I can fill it in later
}

执行此操作并输出字符串(cout << S;)我得到x空格和一些随机字符如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

延长我之前的评论。我认为你需要在末尾添加一个空字符,以便std::cout知道何时停止,否则它将继续尝试打印S指向的内存内容。

char * S;
int x;
cin >> x;
S = new char [x + 1]; // +1 for the null character

int i;
for (i=0; i<(x); i++)
  S[i] = ' ';

S[i] = '\0';