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字符升序排列

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值