输入两个已经按照升序排列好的字符串,将两个字符串合并成一个字符串,新字符串中的字符仍然按照升序排列。

任务描述

本关任务: 输入两个已经按照升序排列好的字符串,将两个字符串合并成一个字符串,新字符串中的字符仍然按照升序排列。

相关知识

为了完成本关任务,你需要掌握: 1.字符串的存储; 2.一维字符数组; 3.字符串处理函数gets,strlen,puts等; 4.数字的ASCII码值; 5.字符串结束标志‘\0’; 6.有序字符串重组的算法。

编程要求

1.撰写函数void resort(...,...,...,),完成对两个排好序的字符串的重组; 2.编写主函数,实现: (1)键盘接收有序字符串1和有序字符串2; (2)调用resort函数实现重组; 3.输出排好序的最终字符串(可以在函数或者主函数中输出)。

测试说明

平台会对你编写的代码进行测试: 输入: 输入排好序的字符串1 abcdefg 输入排好序的字符串2 1234567 输出: 1234567abcdefg

#include<stdio.h>
#include<string.h>
#define SIZE 100 
void resort(char *a)
{
	int i=0,j=0;
	int len=strlen(a);
	char temp;
	for(i=0;i<len-1;i++)
	{
		for(j=0;j<len-1-i;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;	
			}
		}
	}	  

}

    
int main()
{
	char arr1[SIZE];	
	char arr2[SIZE];
	int n;
	puts("输入排好序的字符串1");
	gets(arr1);
	puts("输入排好序的字符串2");
	gets(arr2);
	n=strcmp(arr1,arr2);
	if(n<0)
	{
		strcat(arr1,arr2);
		resort(arr1);
		puts(arr1);
	}
	else
	{
		strcat(arr2,arr1);
		resort(arr2);
		puts(arr2);
	}
	return 0;
}

Guess you like

Origin blog.csdn.net/qq_46069852/article/details/121406763