C++ 创建动态Cstring

C++ 创建动态Cstring,c++,cstring,C++,Cstring,我正面临着这个职位,我需要创建一个用户输入大小的动态字符串(所以我尝试使用动态cstring) char*S; int x; cin>>x; S=新字符[x]; 对于(int i=0;i>x; S=新字符[x+1];//+1表示空字符 int i; 对于(i=0;i扩展我以前的注释。我认为您需要在末尾添加一个空字符,以便std::cout知道何时停止,否则它将继续尝试打印S指向的内存内容 char * S; int x; cin >> x; S = new char [x + 1];

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

char*S;
int x;
cin>>x;
S=新字符[x];
对于(int i=0;i

执行此操作并输出字符串
(cout扩展我之前的注释。我认为您需要在末尾添加一个空字符,以便
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';
char*S;
int x;
cin>>x;
S=新字符[x+1];//+1表示空字符
int i;

对于(i=0;i扩展我以前的注释。我认为您需要在末尾添加一个空字符,以便
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';
char*S;
int x;
cin>>x;
S=新字符[x+1];//+1表示空字符
int i;

对于(i=0;i尝试在字符串末尾添加一个
'\0'
。为什么不使用std::string?另外,CString是由Microsoft制作的类,char*是您在那里拥有的。@olevegard我想他是想说“C string”。尝试在字符串末尾添加一个
'\0'
。为什么不使用std::string?CString也是由Microsoft制作的类,char*是什么你有。@olevegard我想他是想说“C字符串”。谢谢@austin:D我忘了空值谢谢@austin:D我忘了空值