五月天的天 发表于 2020-5-6 17:23:27

考研复试求助!写一个函数my_strcpy_s实现功能是字符串安全拷贝

本帖最后由 五月天的天 于 2020-5-6 17:30 编辑

安全拷贝的含义是可以防止目标字符串缓冲区溢出,函数定义以及相关说明如下:
int my_strcpy_s(char*Dest,int Size,const char *Src);
参数说明:Dest, 目标字符缓冲区;
                Size,目标字符缓冲区大小(字节数)
                Src,   以'\0'结尾的源字符串缓冲区
返回值说明:
            0,成功
            其他值,错误
并编写该函数的 完整源代码(注:在函数中不得调用C语言或操作系统已有函数),
并在main函数中给出完整的调用示例代码。

weiter 发表于 2020-5-6 17:24:27

下……
没有下了???

PC_ 发表于 2020-5-6 17:26:13

请详细说明情况

五月天的天 发表于 2020-5-6 17:36:28

weiter 发表于 2020-5-6 17:24
下……
没有下了???

刚没编辑完,不好意思

weiter 发表于 2020-5-6 17:45:18

五月天的天 发表于 2020-5-6 17:36
刚没编辑完,不好意思

emmm……

qiuyouzhi 发表于 2020-5-6 17:54:38

# include <stdio.h>

int my_strcpy_s(char *Dect, int Size, char *Src)
{
        char *target = Src;
        char ch;
        int i = 0;
        while ((ch = *target++) != '\0')
        {
                Dect = ch;
                ++i;
                if (i >= Size)
                        break;
        }
        return 0;
}

int main()
{
        char a;
        my_strcpy_s(a, 7, "qiuyouzhi");
        printf("%s", a);
        return 0;
}
瞎写一个,但是那个return -1的情况不知道怎么写

五月天的天 发表于 2020-5-6 23:03:12

qiuyouzhi 发表于 2020-5-6 17:54
瞎写一个,但是那个return -1的情况不知道怎么写

谢谢大佬

赚小钱 发表于 2020-5-9 17:01:31

qiuyouzhi 发表于 2020-5-6 17:54
瞎写一个,但是那个return -1的情况不知道怎么写

没有考虑内存覆盖
页: [1]
查看完整版本: 考研复试求助!写一个函数my_strcpy_s实现功能是字符串安全拷贝