长不大的小Tom 2021-12-28 22:54 采纳率: 100%
浏览 29
已结题

strcpy用法问题


void my_fputc(char *path)
{
    if (path == NULL)
    {
        return;
    }

    FILE* fp;

    fp = fopen(path, "w+");

    if (fp == NULL)
    {
        perror("fopen");
        system("pause");
        return;
    }

    char buf[] = "this is test";
    char tmp1[20] = { 0 };
    char tmp2[20] = "lyyyw";
    int i = 0;
    int n = strlen(buf);

    for (i = 0; i < n; i++)
    {
        int ret = fputc(buf[i],fp);
        sprintf(tmp1,"%c",ret);
        strcpy(tmp2[i],tmp1[0]);
        //printf("%c", ret);
    }

    if (fp != NULL)
    {
        fclose(fp);
        fp = NULL;
    }
}

void my_fgetc(char* path)
{
    FILE* fp;

    fp = fopen(path, "r+");

    char ch;

    if (fp == NULL)
    {
        perror("fopen");
        system("pause");
        return;
    }

    //while ((ch = fgetc(fp)) != EOF)
    while(!feof(fp))
    {
        ch = fgetc(fp);
        printf("%c",ch);
    }

    if (fp != NULL)
    {
        fclose(fp);
        fp = NULL;
    }
}

int main(void)
{
    my_fputc("../test.txt");

    //my_fgetc("../test.txt");

    printf("\n");
    system("pause");
}

为什么这种情况下strcpy会出现错误,两个变量都是有内存的

  • 写回答

3条回答 默认 最新

  • _术士_ 2021-12-28 23:22
    关注

    strcpy(tmp2[i],tmp1[0]);

    strcpy拷贝的是字符串,不是字符

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月28日

悬赏问题

  • ¥15 hexo+github部署博客
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?