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

 我来答
皇冰洪忠
2019-05-03 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:32%
帮助的人:815万
展开全部
n是由主函数传递过去的数,while(n--)只要n不为0,则将s1指针向后移一位,知道n自减为0为止。所以n为多少,s1指针就向后移动多少位,最后当n自减为0时结束循环,执行strcpy(s2,s1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xjfang_09
2017-05-19 · TA获得超过127个赞
知道小有建树答主
回答量:84
采纳率:0%
帮助的人:73.5万
展开全部
#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++;
    }
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
计慕蕊贰叡
2019-08-30 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:663万
展开全部
while(n--)
{
s1++;
}
s1是char
*
类型的,
你把s1想成是:
char
s1[m+n]的一个数组,
s1++
相当于从s1[0]--->s1[1]
;
用while(n
--)
则移动了n次,则移到了s1[n-1]位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcy8760450
2017-05-19 · TA获得超过956个赞
知道小有建树答主
回答量:610
采纳率:64%
帮助的人:392万
展开全部
char s[100], t[100];
char *p;
p = s + m;
copy(t, p);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式