aaasdfgzzy 2022-04-02 21:18 采纳率: 79.4%
浏览 130
已结题

编程,将字符串中的第m个字符开始的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制。

//代码一,输出正确

#include<stdio.h>
void f(char *a,int m,char *b)
{    
    b=a+m;
    puts(b);
}
int main()
{
    char a[99],b[99],*pa=a,*pb=b;
    int m,i;
    printf("请获得一串字符串:\n");
    gets(a);
    printf("请输入一个数字m:\n");
    scanf("%d",&m);
    printf("从第%d个字符开始的字符串为:\n",m);
    f(pa,m,pb);
    return 0;
}

//代码二,自定义函数中的puts(b)放到主函数中,但是输出为乱码,为什么

#include<stdio.h>
void f(char *a,int m,char *b)
{
    b=a+m;
}
int main()
{
    char a[99],b[99],*pa=a,*pb=b;
    int m,i;
    printf("请获得一串字符串:\n");
    gets(a);
    printf("请输入一个数字m:\n");
    scanf("%d",&m);
    printf("从第%d个字符开始的字符串为:\n",m);
    f(pa,m,pb);
    puts(b);
    return 0;
}

  • 写回答

1条回答 默认 最新

  • fuill 2022-04-02 21:40
    关注

    修改如下

    #include<stdio.h>
    void f(char *a,int m,char **b)
    {
        *b=a+m;
    }
    int main()
    {
        char a[99],b[99],*pa=a,*pb=b;
        int m,i;
        printf("请获得一串字符串:\n");
        gets(a);
        printf("请输入一个数字m:\n");
        scanf("%d",&m);
        printf("从第%d个字符开始的字符串为:\n",m);
        f(pa,m,&pb);
        puts(pb);
        return 0;
    }
     
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月25日
  • 创建了问题 4月2日

悬赏问题

  • ¥20 VM虚拟机崩溃,重新登录故障,移除加密访问。
  • ¥15 双VSG并网系统,matlab,稳态工作点求解
  • ¥15 关于#Stata#的问题:数据是面板数据,SPSS里面不能控制年份和时间,所以只能用Stata做
  • ¥20 基于基于NioEventLoop线程阻塞问题
  • ¥20 我需要"hill48屈服模型 等向强化 非线性硬化"的abaqus本构子程序(umat或者vumat)对应的理论推导过程。
  • ¥15 基于ucc28019的pfc电路中芯片一直不工作
  • ¥15 yolov8在3588板子端c++推理报错
  • ¥50 unitywebrequest分段下载导致报错,如何解决?
  • ¥15 错误使用 gretna_GUI_PreprocessInterface>RunBtn_Callback
  • ¥15 WPF如何用Chart绘画出Y轴的左边数据