c++中的字符赋值
Character assignment in c++
我正在用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;
是完全有效的
可能您需要在末尾使用