全部问题 > 当前问题

编写的函数fun为什么运行不正确,实现两个字符串的连接

#include <stdio.h>

void fun(char p1[], char p2[])

{

int i,n;

while(p1[n]) n++;


  for(i=0;p2[i]!='\0';i++)


  {


    p1[n+i]=p2[i];


  }


  p1[n+i]='\0';

  







}


main()

{    char s1[80], s2[40] ;void NONO ();


     printf("Enter s1 and s2:\n") ;

     scanf("%s%s", s1, s2) ;

     printf("s1=%s\n", s1) ;

     printf("s2=%s\n", s2) ;

     printf("Invoke fun(s1,s2):\n") ;

     fun(s1, s2) ;

     printf("After invoking:\n") ;

     printf("%s\n", s1) ;

     NONO() ;

}


void NONO ()

{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

  int i ;

  FILE *rf, *wf ;

  char s1[80], s2[40] ;


  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  for(i = 0 ; i < 10 ; i++) {

    fscanf(rf, "%s", s1) ;

    fscanf(rf, "%s", s2) ;

    fun(s1, s2) ;

    fprintf(wf, "%s\n", s1) ;

  }

  fclose(rf) ;

  fclose(wf) ;

}


m 2016-3-26 20:11:07

共 3 个回答

对面 2016-3-26 20:29:39

你的n没有赋初值,改为int i,n=0;

童猛 2016-3-26 20:31:49

你好

int i,n;应改为int i,n=0;

你先试一下

童猛 2016-3-26 20:43:26

网络延迟。。。。。。