电脑网络

输入一个字符串,将该字符串中从第m个字符开始的全部字符复制成另一个字符串,m由用户输入

346 浏览

输入一个字符串,将该字符串中从第m个字符开始的全部字符复制成另一个字符串,m由用户输入

1 个回答

ErnestNum用户头像
ErnestNum 回答于 2024-07-20
已采纳

提问:输入一个字符串,将该字符串中从第m个字符开始的全部字符复制成另一个字符串,m由用户输入

要求编写一个函数mcopy(char s[],char t[],int m)来完成。#include <stdio.h>#include<string.h>int mian(){ void mcopy(char s[],char t[],int m); int m; scanf("%d",&m); char s[20],t[20]; gets(s); mcopy(s,t,m); puts(t); return 0;}void mcopy(char s[],char t[],int m){ int i; for(i=0;t[i-1]!='0';i++) t[i]=s[i+m-1];}求问哪里错了

网友回答:

程序有多个错,改过的参考

#include <stdio.h>

#include<string.h>

#include <stdlib.h> //fflush定义 

int main() //你的main拼错了 

{

    void mcopy(char s[],char t[],int m);

    int m;

    char s[20],t[20]; //C99标准以前的C编译器,不支持变量在语句后定义的 

    scanf("%d",&m);

    fflush(stdin); //要清输入缓冲的,否则下面什么也得不不到 

    gets(s);

    mcopy(s,t,m);

    puts(t);

    return 0;

}

void mcopy(char s[],char t[],int m)

{

    //没考虑开头大于长度,这个若有要求自己改下 

    int i;

    for(i=m-1; s[i]!='\0'; i++) //算法是错的,且字串结尾不是'0' 

        t[i-m+1]=s[i];

    t[i-m+1]='\0'; //后面要加\0的 

}

测试:

我来回答

相关问题