进程控制类型转换问题

img

img

传递'strcpy'的第二个参数时将整数赋給指针,未作类型转换

检查你 136 行的 strcpy, 看看它第二个参数是不是传了 整型, 实际需要 char *

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7709303
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:一步步优化,让面试官称妙的手动写代码实现strcpy功能
  • 除此之外, 这篇博客: 常见字符串函数及模拟字符串函数中的 strcpy函数介绍及模拟实现 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • strcpy为字符串拷贝函数,用来将源字符串拷贝到目标字符串,要注意的是将源字符串的\0也拷贝到目标字符串中。所以目标字符串空间必须足够大为避免溢出,目标空间也必须可修改,不能用const来修饰。

    • 注意
    • 源字符串必须以 '\0' 结束。
    • 会将源字符串中的 '\0' 拷贝到目标空间。
    • 目标空间必须足够大,以确保能存放源字符串。
    • 目标空间必须可变
    • strcpy模拟实现
    char* my_strcpy(char* dest, const char* src)
    {
    	char* ret = dest;
    	assert(dest &&src);//断言一下防止为空指针
    	while ((*dest++ = *src++))//这里将源字符串拷贝到目标字符串,还要记得最后要将\0也要拷贝到目标字符串
    	{
    		;
    	}
    	return ret;//返回目标字符串的起始地址
    }
    
  • 您还可以看一下 王桂林老师的C语言:从放弃到入门课程中的 10-4原字符串处理strcpy小节, 巩固相关知识点