作业帮 > 综合 > 作业

void fun(char *t,char *s){while(*t!=0)t++

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 06:24:06
void fun(char *t,char *s){while(*t!=0)t++
#include "stdio.h"
void fun(char*t,char*s)
{while(*t!=0) t++;
while((*t++=*s++)!=0);
}
main()
{char ss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);
printf("%s,%s\n",ss,aa);
}
求运行结果?
不知道如何看这个程序,求详细详细详细解答……还有怎么看这个fun函数的作用,
运行结果:accbbxxyy,bbxxyy;
函数fun()的作用是连接两个字符串数组,即把字符串数组aa连接到字符串数组ss后面;
原理:字符串数组的数组名表示指向此字符串的首个元素的指针(比如ss指向“a”,对ss进行加一运算后,ss++表示下一个元素“c”,以此类推);
fun()函数中,while(*t != 0) t++;表示:当指针t指向的字符不是空字符时,将t加一,使其指向下一个字符;
while((*t++ = *s++) != 0);作用:依次复制指针s指向的字符给指针t,通过++操作前进,当赋值结果为0时,表示s指向的字符为空,结束循环.
[有不懂的可以接着问]

再问: 基本上理解了,大神能否在我的程序旁边写上详细的注释呢? 以后遇到这种类型的话我就按照你这样说的理解,很详细。
再答: #include "stdio.h"

void fun(char *t, char *s)    // 函数fun()接受两个字符串指针为参数
{
    while(*t != 0)    // 当指针t指向的字符为非空时……
        t++;    // 将t加一,指向下一个字符
    while((*t++ = *s++) != 0);    // 依次复制s指向的字符给t指向的内容
        // 通过++操作前进,当赋值结果为0时,表示s指向的字符为空,结束
}

main()
{
    char ss[10] = "acc", aa[10] = "bbxxyy";    // 声明两个字符串数组
    fun(ss, aa);    // 将aa连接到ss的后面,aa保持不变
    printf("%s,%s\n", ss, aa);
}【建议:main函数开头最好写成int main(void)或者int main(int argc, char **argv),结尾加上一句return 0;,这是ANSI C标准的规定。】