如何在c中打印char数组

我如何打印一个char数组,如初始化,然后连接到另一个char数组?请参阅下面的代码

int main () {
char dest[1020];
char source[7]="baby";
cout <<"source: " <<source <<endl;
cout <<"return value: "<<strcat(dest, source) <<endl;
cout << "pointer pass: "<<dest <<endl;
return 0;
}

这是输出

source: baby
return value: v����baby
pointer pass: v����baby

基本上我想看看输出打印

source: baby
return value: baby
pointer pass: baby
你还没有初始化dest

char dest[1020] = ""; //should fix it

你很幸运,它发生在dest的第6个(随机)值为0.如果它是第1000个字符,你的返回值会更长.如果它大于1024,那么你将得到未定义的行为.

作为char数组的字符串必须用0分隔.否则无法知道它们的结束位置.或者可以说,字符串通过显式设置为0来结束其第0个字符;

char dest[1020];
dest[0] = 0;

或者你可以用0来初始化你的整个数组

char dest[1024] = {};

而且由于你的问题被标记为C,我不得不注意到在C中我们使用std :: strings来避免很多头痛.运算符可用于连接两个std :: strings

相关文章
相关标签/搜索