strcpy还可以这样用的吗?
#include <stdio.h>#include <string.h>
int main()
{
char a[] = "123";
char b[] = "abc";
char c;
strncpy(c, a, 2);
a = '\0';
strcpy(a,"567");
strncat(a, b, 3);
printf("%s\n", a);
return 0;
}
567abc
--------------------------------
Process exited after 0.03092 seconds with return value 0
请按任意键继续. . .
本帖最后由 jackz007 于 2019-11-24 12:16 编辑
a[] 分配的是 4 个字符空间,却容纳了 7 个字符,已经下标越界了。至于各个字符串函数的使用,没有什么特别的,再正常不过了。
strncpy(c, a, 2) ; 后,a = '\0' 这句是多余的。既然是字符串拷贝函数,为字符串添加结束标志自然是必备功能。
页:
[1]