Cool_Br_IFpy5 发表于 2019-11-24 11:43:04

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:10:12

本帖最后由 jackz007 于 2019-11-24 12:16 编辑

      a[] 分配的是 4 个字符空间,却容纳了 7 个字符,已经下标越界了。至于各个字符串函数的使用,没有什么特别的,再正常不过了。
      strncpy(c, a, 2) ; 后,a = '\0' 这句是多余的。既然是字符串拷贝函数,为字符串添加结束标志自然是必备功能。
页: [1]
查看完整版本: strcpy还可以这样用的吗?