c语言 输入一个字符串,将该字符串中从第m个字符开始的全部字符复制到另一个字符串

如题所述

第1个回答  2019-05-03
n是由主函数传递过去的数,while(n--)只要n不为0,则将s1指针向后移一位,知道n自减为0为止。所以n为多少,s1指针就向后移动多少位,最后当n自减为0时结束循环,执行strcpy(s2,s1);
第2个回答  2017-05-19
#include <stdio.h>
#define SIZE 100

void strmcp(char *s,char *t, int n);

int main()
{
    int i=0;
    int c,m;
    char a[SIZE];
    char b[SIZE];
    
        printf("m=");
        scanf("%d",&m);
    
    printf("Input string:");
    while((c=getchar())!=EOF)//当遇到文件结束符输入结束
         b[i++]=c;
    b[i]='\0';
    
    strmcp(a,b,m);
    printf("%s\n",a);
}

void strmcp(char *s,char *t, int n){
    while((*s=*(t+n))!='\0'){
            s++;
            t++;
    }
}

本回答被提问者采纳
第3个回答  2019-08-30
while(n--)
{
s1++;
}
s1是char
*
类型的,
你把s1想成是:
char
s1[m+n]的一个数组,
s1++
相当于从s1[0]--->s1[1]
;
用while(n
--)
则移动了n次,则移到了s1[n-1]位置
第4个回答  2017-05-19
char s[100], t[100];
char *p;
p = s + m;
copy(t, p);

相似回答