C strncpy 2 char

时间:2017-06-30 12:29:35

标签: c string malloc strncpy

当我想从字符串中复制2个字符时,我无法制作strncpy,但是当我想复制3个字符时,相同的代码正常工作。

在这个示例中,我需要strncpy()将12存储到'变量:

void main(){
    const char* from = "12345678";
    char *to = (char*) malloc(3);
    strncpy(to, from, 2);

    printf("%s", to);
    free(to);
}

但是当strncpy(to, from, 3)malloc(4)一起使用时,它可以正常工作。任何使这项工作的解决方案?

1 个答案:

答案 0 :(得分:3)

您忘记使用终止零附加目标字符串。

char *to = (char*) malloc(3);
strncpy(to, from, 2);
to[2] = '\0';