#include
int main()
{
int m;
void copy(char *s1,char *s2,int m);
char s1[20];
char s2[20];
//n=sizeof(s1)/sizeof(int);
//n=sizeof(s1)會返回20,但這明顯不是你需要的
gets(s1);
printf("輸入字串為:%s ",s1);
//這裡用strlen(s1)可以得到實際字串長度
scanf("%d",&m);
printf("m的值為:%d",m);
copy(s1,s2,m);
printf("result:%s\n",s2);
return 0;
}
void copy(char *p1,char *p2,int m)
int i=m;
while(*(p1+i-1))
{//沒有必要糾結於n,直接透過字串結束符判斷就可以了
*(p2+i-m)=*(p1+i-1);
這樣和你的程式更接近一些吧
#include
#include
int main()
{
int m;
void copy(char *s1,char *s2,int m);
char s1[20];
char s2[20];
//n=sizeof(s1)/sizeof(int);
//n=sizeof(s1)會返回20,但這明顯不是你需要的
gets(s1);
printf("輸入字串為:%s ",s1);
//這裡用strlen(s1)可以得到實際字串長度
scanf("%d",&m);
printf("m的值為:%d",m);
copy(s1,s2,m);
printf("result:%s\n",s2);
return 0;
}
void copy(char *p1,char *p2,int m)
{
int i=m;
while(*(p1+i-1))
{//沒有必要糾結於n,直接透過字串結束符判斷就可以了
*(p2+i-m)=*(p1+i-1);
}
}
這樣和你的程式更接近一些吧