输出时为什么会多一个$

2018-12-28 19:34发布

#include<stdio.h>

#include<string.h> 

int main()

{int n ;

int Duplicate(char scr[],char dest[],int n);

 char scr[80],dest[80];

 printf("Input a string:");

 gets(scr);

 printf("Input a integer:");

 scanf("%d",&n);

  Duplicate(scr,dest,n);

 if(Duplicate(scr,dest,n)!=0)

 printf("Output is:%s,%d characters.",dest,Duplicate(scr,dest,n));

 return 0;

}

int Duplicate(char scr[],char dest[],int n)

{int i,j;

 for(i=0,j=n-1;*(scr+j)!='';i++,j++)

 *(dest+i)=*(scr+j);

 return i;

}为什么year后面多了一个$


2条回答
ygl990951
1楼 · 2018-12-28 20:42.采纳回答

你程序有一个BUG,只显示一个$已是运气(楼上的运气更好)

我后面显示了乱码

你程序的目标串少结尾了,在最后的

return i;

前加

    *(dest+i)='\0';  

就OK了

一生所爱abg
2楼-- · 2018-12-28 20:41

你的程序可以编译通过,也可以正确运行,并没有出现$。


一周热门 更多>