| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 678 人关注过本帖
标题:c语言有道题不懂,高手请进~~
只看楼主 加入收藏
一点黑66
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-1
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:11 
c语言有道题不懂,高手请进~~
#include <stdio.h>
 void fg(char x1[20],char x2[10])
 {
 int i,j;
 for(i=0;x1[i]!='\0';i++);
 for(j=0;(x1[i++]=x2[j++])!='\0';);        /这里是怎么运行的???不懂??详细一点哦~~
 
}
 main()
 {
 char s1[15]={"1234"},s2[]={"56789"};
 fg(s1,s2);
 printf("s1=%s",s1);
 getchar();
 }



 

[ 本帖最后由 一点黑66 于 2012-3-2 15:26 编辑 ]
搜索更多相关主题的帖子: c语言 include 
2012-03-02 12:56
cqm9266
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:174
专家分:186
注 册:2011-10-28
收藏
得分:0 
处理字符串s2内容给s1   问题是 你这样写也达不到效果 因为你在fg里面处理的s1 s2的形参 没对s1 s2进行改动。。。。

没病的人说有病的人有病,有病的人说没病的人有病。到底是谁有病?
2012-03-02 13:04
一点黑66
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-1
收藏
得分:0 
回复 2楼 cqm9266
但是我运行过了,可以啊
结果是123456789
2012-03-02 13:10
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
如果要把两根木棍绑成一根长木棍
两步骤:
1.找到第一根木棍的尾部         for(i=0;x1!='\0';i++);
2.把第二根木棍接上去            for(j=0;(x1[i++]=x2[j++])!='\0';);

不管怎么走、总有一个终点...
2012-03-02 13:34
krieger123
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2012-3-2
收藏
得分:3 
#include <stdio.h>
 void fg(char x1[20],char x2[10])
 {
 int i,j;
for(i=0;x1!='\0';i++);              /*数组x1[i]中i由0不断增加,直到数组x1[i]为空位,'\0',当for语句结束后,i++*\

 for(j=0;(x1[i++]=x2[j++])!='\0';); /*将数组x2中字符传递给数组x1,i的值由上一个for语句决定的,直到数组x2[j]为空位,for语句结束*\

 }
main()
 {
 char s1[15]={"1234"},s2[]={"56789"};
 fg(s1,s2);  \*x1[0]=1,x1[1]=2,x1[2]=3,x1[3]=4,*\
             \*x1[4]=x2[0]=5,*\
             \*x1[5]=x2[1]=6,*\
             \*x1[6]=x2[2]=7,*\
             \*x1[7]=x2[3]=8,*\
             \*x1[8]=x2[4]=9,*\
 printf("s1=%s",s1);
 getchar();
 }


 本人也是菜鸟级别的,只是觉得好像看明白了,所以就一步一步的写了出来,希望能对你有所帮助。
2012-03-02 13:58
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:0 
for(i=0;x1!='\0';i++);
不知道这句话怎么结束,这一句是空语句。
2012-03-02 14:18
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:0 
for(i=0;x1!='\0';i++);
应该是for(i=0;x1[i]!='\0';i++);吧,楼主不会发错了吧。
2012-03-02 14:22
chan_
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:84
专家分:122
注 册:2012-2-29
收藏
得分:0 
学习中
2012-03-02 14:45
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:2 
for(i=0;x1[i] !='\0';i++);当x1[i]=='\0';时跳出否则i++; 运行完后i指向x1[]结束符号'\0'

for(j=0;(x1[i++]=x2[j++])!='\0';); 其实可以改为:

for(j = 0;x2[j] != '\0';j++,i++)
       x1[i] = x2[j];

       x1[i] = '\0';// 加结束标志
起作用也就是 4 楼所说的
2012-03-02 14:55
dyh839911010
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:63
专家分:71
注 册:2011-9-14
收藏
得分:0 
也不懂呢

把简单做到纯粹,自然有生活的成就。
游戏开发吧诚邀各位的驻足!
2012-03-02 15:23
快速回复:c语言有道题不懂,高手请进~~
数据加载中...
 
   



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

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