使用strcat附加字符时出现意外行为

时间:2014-08-12 00:32:27

标签: c++ string strcat

char buf[256];
char c48 = (char) 48;
char c49 = (char) 49;
char c50 = (char) 50;
char c51 = (char) 51;
char c52 = (char) 52;
char c53 = (char) 53;
strcpy(buf, &c48);
strcat(buf, &c49);
strcat(buf, &c50);
strcat(buf, &c51);
strcat(buf, &c52);
strcat(buf, &c53);
puts(buf);

我希望输出字符串为012345 然而,当我做了一个cout这是结果010210321043210543210。 我不明白为什么会这样。是否可以使用strcat方法复制buf?对不起这个基本问题。我来自java背景。

1 个答案:

答案 0 :(得分:3)

strcpy(buf, &c48);

第二个参数不是指向以NULL结尾的字符串的指针。该行及其后面的所有行都表现出不确定的行为。