040 字符升序排列

1.题目

将已按升序排好的字符串a和字符串b按升序归并到字符串c中并输出。

2.代码

#include<stdio.h>
int main(void)
{
	char a[100], b[100], c[200], * p;
	int i = 0;
	int j = 0;
	int k = 0;
	printf("请输入字符串a:\n");
	scanf("%s", a);					//输入字符串1放入a数组中
	printf("请输入字符串b:\n");
	scanf("%s", b);					//输入字符串2放入b数组中
	while (a[i] != '\0' && b[j] != '\0')
	{
		if (a[i] < b[j])			//判断a中字符是否小于b中字符
		{
			c[k] = a[i];			//如果小于,将a中字符放到数组c中
			i++;
		}
		else
		{
			c[k] = b[j];			//如果不小于,将b中字符放到数组c中
			j++;
		}
		k++;
	}
	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

	return 0;
}

3.个人见解

因为输入的字符串a和b是有序字符串,
所以对数组a和b中的元素逐个比较,
将较小的字符先放到数组c中,
直到a或b中有一个字符串全部放到c中,
再判断哪一个字符串全部复制到c中,
对没有全部复制到c中的字符串,
从未复制的位置开始将未复制到c中的字符串全部连接到c中。
这样就完成将字符串a和字符串b按升序归并到字符串c中。

4.输出结果截图

040字符升序排列

发布了43 篇原创文章 · 获赞 0 · 访问量 881
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览