编写一个C语言程序:1、任意输入一个字符串;2、把字符串中的所有字符按照从左到右的顺序按照ASCII码的大小进行排序;3、将字符串中的所有字符依次左移,其中最左边的字符移到最右边;4、连续输出显示,要求输出跑马灯效果。
/*编写一个C语言程序:1、任意输入一个字符串;2、把字符串中的所有字符按照从左到右的顺序按照ASCII码的大小进行排序;3、将字符串中的所有字符依次左移,其中最左边的字符移到最右边;4、连续输出显示,要求输出跑马灯效果。*/
#include <stdio.h>
#include <string.h>
/*函数声明部分*/
void bubble_sort(char arr[],int n); //冒泡函数声明
void char_left(char str[],int n); //字符左移函数声明
int main()
{
int i = 0;
char str[128];
gets(str);
int len = strlen(str);
//排序
bubble_sort(str,len);
puts(str);
//跑步灯
for(i=0;i<len;i++)
{
char_left(str,len);
puts(str);
}
return 0;
}
/*函数定义部分*/
void bubble_sort(char arr[],int n)
{
int i,j,tmp;
for(i=0;i<n-1;i++) //n个元素需要排n-1趟
{
for(j=0;j<n-1-i;j++) //每排完一趟,下次需要排的元素减1
{
if(arr[j]<arr[j+1]) //相邻元素比较,小于就交换位置
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
void char_left(char str[],int n)
{
int i;
int tmp = str[0]; //保存第1个元素
for(i=1;i<n;i++)
{
str[i-1] = str[i];
}
str[n-1] = tmp;
}