关于不用strcat函数合并两个字符串组问题
# include <stdio.h>int main()
{
char s1, s2, s3;
int i, j;
gets(s1);
gets(s2);
for(i = j = 0; s1;)
s3 = s1;
for(i = 0; s2;)
s3 = s2;
s3 = '\0';
puts(s3);
getchar ();
return 0;
}
这段代码并不是我打出来的,求大神指导一下
关于 for(i = j = 0; s1;)这里是什么意思
谢谢呃。。。
for(i = j = 0; s1;)
初始化 i,j 为0
循环结束条件就是字符串s1到达 '\0' 循环三大要素!
1. 初始化计数器
2.循环条件
3.更新计数器
现在接着看循环
i = j = 0; 是不是初始化计数器
s1 ; 是不是循环条件
没有更新计数器? 别急 往下看
s3 = s1这里的i和j是不是自增了
有了这些 接着看循环
假定输入 aaa :
s1数组开始向s3数组赋值,
第一次 赋值一个a
第二次 赋值一个a
第三次 赋值一个a
第四次,数组元素没有被初始化的元素 会被c语言初始化为0,
现在再看 s1 == 0 零为假!循环条件不成立!循环退出!
下面的循环同理 for(i = j = 0; s1;)
s3 = s1;
i,j初始化为0
s1,因为i是递增的,所以s1的数据是变化的,直到s1=0,则循环条件终止,C语言中字符串(ansi)是以0结尾的 实在是谢谢大家了...
有点不好意思,
这几天没有上来回复是因为要准备考试,
本来早就想上来看看了。。
托大家的福,c平时成绩貌似拿了84分...诶嘿嘿
虽然不高,不过我还是很感谢大家
页:
[1]