【发布时间】:2013-03-05 16:45:06
【问题描述】:
我写了一个简单的c程序,只取一个单词的前两个字符,取第二个单词的后三个字符。我使用 strncpy 仅将 name1 的前 2 个字母复制到 name,并与 name2 的最后三个字符连接。
但是,当我运行它时。输出会以某种方式喜欢
Ediacy //correct
acy //wrong
Ed?
acy //wrong
Edk
acy //wrong
Edv
acy //wrong
// code sample
#include <stdio.h>
#include <string.h>
int main(void)
{
char name[100];
char name1[] = "Edison";
char *name2 = "Tracy";
strncpy(name, name1, 2); // instead of get Ed, it tried to append one extra char behind it.
strcat(name, name2+2);
printf("%s\n", name);
return 0;
}
如果有人帮我弄清楚为什么会这样以及我该如何纠正它,我将不胜感激?
【问题讨论】:
标签: c substring concatenation strncpy