gpt4 book ai didi

c++ - C++中的字符赋值

转载 作者:行者123 更新时间:2023-11-30 02:47:50 25 4
gpt4 key购买 nike

我正在用 C++ 做以下作业。我有一个字符数组

char myyear[4] = { dob[0], dob[1], dob[2], dob[3] };
char mymonth[2] = {dob[4], dob[5]};
char mydate[2] = { dob[6], dob[7] };

然后我写道:

cout<<myyear<<"-"<<mymonth<<"-"<<mydate<<"-"<<endl;

我得到了输出

1981╕■#-051981╕■#-02051981╕■#

而不是

1981-05-02

这是 dob 包含的内容。

任何帮助。

最佳答案

您需要在每个字符数组的末尾包含空终止符

例如,

char myyear[5] = { dob[0], dob[1], dob[2], dob[3], 0 };

cout (以及 C 和 C++ 中的许多其他字符串类型函数)要求将字符串建模为以 0 结尾的字符序列。

从技术上讲,您目前正在做的是未定义的行为:您得到任何输出的事实被认为完全是巧合。

顺便问一下,您为什么要像这样对数值建模? std::cout也适用于整数类型:例如int myyear = 1981; cout << myyear;完全有效。

关于c++ - C++中的字符赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22434203/

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