C strncpy 2 char



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

在这个例子中,我需要strncpy()在"to"变量中存储 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)一起使用时,它可以正常工作。有什么解决方案可以做到这一点吗?

您忘记在目标字符串后附加一个终止零。

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

相关内容

  • 没有找到相关文章

最新更新