鱼C论坛

 找回密码
 立即注册
查看: 2100|回复: 1

strcpy还可以这样用的吗?

[复制链接]
发表于 2019-11-24 11:43:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <string.h>
int main()
{
        char a[] = "123";       
        char b[] = "abc";
        char c[100];
        strncpy(c, a, 2);
        a[2] = '\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
请按任意键继续. . .




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-24 12:10:12 | 显示全部楼层
本帖最后由 jackz007 于 2019-11-24 12:16 编辑

        a[] 分配的是 4 个字符空间,却容纳了 7 个字符,已经下标越界了。至于各个字符串函数的使用,没有什么特别的,再正常不过了。
        strncpy(c, a, 2) ; 后,a[2] = '\0' 这句是多余的。既然是字符串拷贝函数,为字符串添加结束标志自然是必备功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 23:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表