分别用字符数组和字符指针定义函数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]);
}
这个错在哪里呢? 展开
#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]);
}
这个错在哪里呢? 展开
1个回答
展开全部
#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的最后一个字符吗?
#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的最后一个字符吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询