c语言程序开发范例宝典中这几行代码啥意思?求解释,谢谢#include
发表在C语言图书答疑 2013-01-20
是否精华
版块置顶:
[font color=#0000FF][font color=#00FF00]#include<stdio.h>
main()
{
    char a[100], b[100], c[200],  *p;
    int i = 0, j = 0, k = 0;
    printf("please input string a:\n");
    scanf("%s", a);  /*输入字符串1放入a数组中*/
    printf("please input string b:\n");
    scanf("%s", b);  /*输入字符串2放入b数组中*/
[font color=#FF0000]//此处为啥用与不用或??[/font] while (a[i] != '\0' && b[j] != '\0')         
    {
        if (a[i] < b[j]) /*判断a中字符是否小于b中字符*/
        {
            c[k] = a[i];  /*如果小于,将a中字符放到数组c中*/
            i++;  /*i自加*/
        }
        else
        {
            c[k] = b[j];  /*如不小于,将b中字符放到c中*/
            j++;  /*j自加*/
        }
        k++;  /*k自加*/
    }
[font color=#FF0000]//    c[k] = '\0';  这几行代码不明白啥意思? /*将两个字符串合并到c中后加结束符*/
//    if (a[i] == '\0') 为啥定义一个指针,目的何在? /*判断a中字符是否全都复制到c中*/
//        p = b + j; /*p指向数组b中未复制到c的位置*/
//    else
//        p = a + i; /*p指向数组a中未复制到c的位置*/
//    strcat(c, p);  /*将p指向位置开始的字符串连接到c中*/
//    puts(c);  /*将c输出*/
[/font]}
[/font][/font]
分享到:
精彩评论 2
shimingyuana
学分:0 LV1
TA的每日心情
伤心
2024-11-30 20:44:57
2013-01-20
沙发
这是(第二版)实例040的题目
过冬的松鼠
学分:0 LV1
TA的每日心情
Q
2021-01-03 22:18:14
2013-01-25
板凳
读者朋友你好。本程序的目的是将两个[font color=#FF0000]已经按升序排列[/font]的两个字符排列到另外一个数组中,使该数组也是升序的。
[font color=#0000FF]例如:a中的字符:
adz
b中的字符:
bdkj[/font]
分两步考虑:
1.两个数组均需要先比较,再装入数组c。但是前提为两个数组必须具备没装入数组c的元素 。
判断语句 while (a[i] != '\0' && b[j] != '\0')   就是依据两个数组之一是否已经把全部元素加入到数组c中了。c格式的字符串后必然具备结束符,不然会产生很多越界错误。
那么经过这一步骤,例子中数组a中adz只装入了a、d连个字符的时候,数组b中的全部字符已经放入到c中了。a当中还有'z'没有装入进去。
2.剩下的工作就是将其中一个数组未装入c中的数组复制到c中。

这时我们需要几个记号来帮助实现此项功能:
(1)剩下的数组中的元素位置,'z'在a中的位置是2   即p+2   那么,需要一个变量记录位置 j(偏移量)。相对的对于数组b剩余元素的情况来说 也需要一个变量记录,即程序中的k。
(2)C标准库中有“现成”的函数 strcpy可以把两个数组拼接,这时将p+i(p+k) 作为一个 子字符串传入进去。就可以将剩余的字符串放到c中。
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照