标题:新人报到,有以下一个程序,不知其如何运行,还望各位懂的人指点
取消只看楼主
和规则决裂
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-9-13
结帖率:100%
已结贴  问题点数:10 回复次数:5 
新人报到,有以下一个程序,不知其如何运行,还望各位懂的人指点


题目要求是实现两个字符串的连接,但不能用现成的C语言连接函数实现,要自己编写fun,以下是我复制过来的(fun里面是答案,这是一道设计题)


#include <stdio.h>
void fun(char p1[], char p2[])
{
    int i,j;
  for(i=0;p1[i]!='\0';i++)  ;  //这句我懂,就是p1[i]若不遇到字符串结束符号就继续进行循环
      for(j=0;p2[j]!='\0';j++)//这句就是上面的for的一部分了(2013-9-15 10:27:55今天又意识到昨天想错了,原来这个是单独出来的,因为上一句有一个分号;)
          p1[i++]=p2[j];//但是到了这句,我就不明白到底是怎么回事了,p2[j]赋值给了p1[i]之后,那还怎么连接呢?
   p1[i]='\0';//然后到了这句,怎么理解?  这几句是我重新编辑的,因为还没理解。时间为2013-9-14 18:23:34。高手请帮忙解答,谢谢!

}

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) ;
}


特别是fun函数里面,p1[i++]=p2[j];这不是替换之意吗?替换之后还怎么连接,不过我运行之后居然是对的   - -!所以想知道怎么回事

[ 本帖最后由 和规则决裂 于 2013-9-15 10:28 编辑 ]
搜索更多相关主题的帖子: C语言 字符串 include color 
2013-09-13 19:52
和规则决裂
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-9-13
得分:0 
回复 2楼 yuccn
题目要求说不允许用那个函数的,就是要自己编fun函数
2013-09-13 20:29
和规则决裂
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-9-13
得分:0 
回复 4楼 小小程序猿
不是我写的,我菜鸟,刚开始学,这是试题上面的一道。我看了不明其意,就复制过来了,fun函数是要自己编的,我复制的是答案。
2013-09-14 18:12
和规则决裂
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-9-13
得分:0 
回复 5楼 pauljames
这是什么?
2013-09-14 18:13
和规则决裂
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-9-13
得分:0 
回复 7楼 embed_xuel
有这个“=”,我理解就是说右边的替换了左边的,就是赋值之后,左边的那个变量成了右边的。难道还有不是替换的情况?高手速速解答疑惑啊
2013-09-14 18:16
和规则决裂
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-9-13
得分:0 
回复 12楼 guhemeng
你这热闹凑得好啊!原来是这样子,最后还有一个结束终止符‘\0’.

我懂了!谢谢你的回答,十分都给你了!又懂了一个知识



注:你前天就回答了,我却一直不知道。因为我没看下一页(论坛文字有点小,我看它是故意为之,专门欺负我这种不戴眼镜的 ——!),所以直到今天结贴了才看到,真是不好意思啊!

[ 本帖最后由 和规则决裂 于 2013-9-16 23:13 编辑 ]
2013-09-16 23:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-420541-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.138023 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved