c语言 输入一个字符串,将该字符串中从第m个字符开始的全部字符复制到另一个字符串
展开全部
n是由主函数传递过去的数,while(n--)只要n不为0,则将s1指针向后移一位,知道n自减为0为止。所以n为多少,s1指针就向后移动多少位,最后当n自减为0时结束循环,执行strcpy(s2,s1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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++;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(n--)
{
s1++;
}
s1是char
*
类型的,
你把s1想成是:
char
s1[m+n]的一个数组,
s1++
相当于从s1[0]--->s1[1]
;
用while(n
--)
则移动了n次,则移到了s1[n-1]位置
{
s1++;
}
s1是char
*
类型的,
你把s1想成是:
char
s1[m+n]的一个数组,
s1++
相当于从s1[0]--->s1[1]
;
用while(n
--)
则移动了n次,则移到了s1[n-1]位置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char s[100], t[100];
char *p;
p = s + m;
copy(t, p);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询