分别用字符数组和字符指针定义函数strmcpy(s,t,m),将字符串t中从m个字符开始的全部字符复制到字符串s中去

#include<stdio.h>#include<string.h>voidmain(){voidstrmcpy(chars[],chart[],intm);chars... #include<stdio.h>
#include<string.h>
void main()
{
void strmcpy(char s[],char t[],int m);
char s[80],t[80];
int m;
gets(s);
gets(t);
scanf("%d",&m);
strmcpy(s,t,m);
}
void strmcpy(char s[],char t[],int m)
{
int i,j,q=strlen(s),n=strlen(t);
for(j=q;j<=q+n-m;j++)
for(i=m;i<=n;i++)
s[j]=t[i];
s[j]='\0';

for(i=0;s[i]!='\0';i++)
printf("%s",s[i]);
}
这个错在哪里呢?
展开
 我来答
百度网友e33deb3
推荐于2018-04-21
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
#include<string.h>

void main()
{
void strmCpy(char s[],char t[],int m);
char s[80],t[80];
int m;
gets(s);
gets(t);
scanf("%d",&m);
strmCpy(s,t,m);
}
void strmCpy(char s[],char t[],int m)
{
int i,j,q=strlen(s),n=strlen(t);
for(i=m-1,j=0;i<n;i++)
{
s[j]=t[i];
j++;
}
s[j]='\0';
printf("%s",s);
}

-----------------------------
你都(for j=q;...)了。
说明s[j]已经到了最后一个字符了,还怎么加呀?
而且嵌套的循环,是里面的先循环一遍,就算,你把它改成j=0,那么复制过去不是全是t的最后一个字符吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式