gpt4 book ai didi

c++ - 如何在C++中打印字符数组

转载 作者:可可西里 更新时间:2023-11-01 18:19:10 26 4
gpt4 key购买 nike

我如何打印一个 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 来表示该字符串在其第零个字符处结束;

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

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

char dest[1024] = {};

并且由于您的问题被标记为 C++ 我不得不注意到在 C++ 中我们使用 std::string s 这让您免于很多头痛。运算符 + 可用于连接两个 std::string

关于c++ - 如何在C++中打印字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com