c语言看不懂问题,求大神解决

2025-05-10 08:42:28
推荐回答(4个)
回答(1):

已在代码中对每一句做了注释

#include 
#include  
main() {
 char a[]="acegikl";//初始化,用字符串初始化字符数组a,C语言中没有专门的字符串类型,只能用字符数组来存储字符串。 
 char b[]="odfhjinpq"; //初始化,用字符串初始化字符数组b 
 char c[80],*p;
 int i=0,k=0;
 while(a[i]!=0) {//while循环的作用是把字符串a中的全部字符赋值给字符数组c ,也就是把字符数组a的元素一个一个的赋值给数组c,位置也是一一对应的 
  c[k]=a[i];
  i++;
  k++;
 }
 c[k]=0;//末尾补0是为了字符串末尾添加结束标记'\0' 
 if(a[i]==0)
  p=b;//把字符串b的首地址赋值给指针p,这样就可以用指针p来访问字符串b了 
 strcat(c,p);//库函数strcat的作用是把字符串p复制到字符串c的尾部。 也就是把字符串p和字符串c连接起来。 
 puts(c);//输出连接后的字符串。
}

输出结果如图

回答(2):

那个0应该是'\0'的意思,表示字符串结束,ASCII码为0嘛,while那部分的代码就是把字符数组a中的元素一个个复制到字符数组c中的意思,然后结束之后再给它加上'\0',然后当a结束之后就将指针p指向字符数组b,然后将这两个字符数组连接起来

回答(3):

,到while后面就看不懂了,总感觉有很多的语句都是不必要的,求大神详细解释一下,另外能改成最简形式吗?我们的作业题!

回答(4):

请问作业的要求是啥?