题目:
字符升序排序
将已按升序排好的字符串a和字符串b按升序归并到字符串c中并输出。
源代码:
#include <stdio.h>
#include <string.h>
#define MAX 20
void sort_alone(char *a);
char * sort_merge(const char *a,const char *b);
int main()
{
char a[MAX],b[MAX];
printf("请输入第一个字符串: ");
scanf("%s",a);
printf("请输入第二个字符串: ");
scanf("%s",b);
sort_alone(a);
sort_alone(b);
sort_merge(a,b);
return 0;
}
void sort_alone(char *a)
{
int max = strlen(a);
for(int j = 0;j < max-1;j++)
{
for(int i = 0;i < max-j-1;i++)
{
if(a[i] > a[i+1])
{
char tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
}
}
}
char * sort_merge(const char *a,const char *b)
{
int a_max = strlen(a),b_max = strlen(b),a_sub=0,b_sub=0,c_sub=0;
char c[a_max+b_max];
while(a_sub != a_max && b_sub != b_max)
{
if(a[a_sub] > b[b_sub])
{
c[c_sub] = b[b_sub];
b_sub++;
}
else
{
c[c_sub] = a[a_sub];
a_sub++;
}
c_sub++;
}
if(a_sub == a_max)
{
while(b_sub != b_max)
{
c[c_sub] = b[b_sub];
c_sub++;
b_sub++;
}
}
if(b_sub == b_max)
{
while(a_sub != a_max)
{
c[c_sub] = a[a_sub];
c_sub++;
a_sub++;
}
}
c[c_sub] = '\0';
printf("两个字符串合并升序排序为: %s",c);
}
演示效果:
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈