C语言考试,在线等,急!!!!关于字符排序问题 5
乌有国皇帝在学习程序设计,他发现编程非常有意思,于是办法圣旨建立了自己的排序规则,圣旨规定:要按照数字字符、小写字母、大写英文字母顺序排序,且字符”从小到大"的排序规则是...
乌有国皇帝在学习程序设计,他发现编程非常有意思,于是办法圣旨建立了自己的排序规则,圣旨规定:要按照数字字符、小写字母、大写英文字母顺序排序,且字符 ”从小到大" 的排序规则是:9, 8, 7, ... , 0, z, y, x, ... , a, Z, Y, X, ..., A。
请你按照乌有国国王颁布的规则完成排序程序。
输入:串长不超过 50 的待排序字符串(使用 gets 函数)
输出:按乌有国规则升序排列后的字符串
例如:
输入字符串:ABC123abc
输出字符串:321cbaCBA 展开
请你按照乌有国国王颁布的规则完成排序程序。
输入:串长不超过 50 的待排序字符串(使用 gets 函数)
输出:按乌有国规则升序排列后的字符串
例如:
输入字符串:ABC123abc
输出字符串:321cbaCBA 展开
3个回答
展开全部
/*
*百度知道
*/
#include <STDIO.H>
#include <STRING.H>
#include <STDLIB.H>
void _sort(char *array,int length)
{
int i;
int j;
for(i = 0;i<length;i++)
for(j = 0;j<length;j++)
if(*(array + i) > *(array + j))
{
*(array + i) ^= *(array + j);
*(array + j) ^= *(array + i);
*(array + i) ^= *(array + j);
}
}
int main(void)
{
char *str;
int i = 0;
char num_str[50] = {0};
int num = 0;
char big_letter_str[50] = {0};
int big_letter = 0;
char little_letter_str[50] = {0};
int little_letter = 0;
str = (char *)malloc(50 * sizeof(char));
printf("input a string:");
gets(str);
while(*(str + i)!='\0')
{
if((*(str + i))>=48 && (*(str + i))<=57)
num_str[num ++] = *(str + i);
if((*(str + i))>=65 && (*(str + i))<=90)
big_letter_str[big_letter ++] = *(str + i);
if((*(str + i))>=97 && (*(str + i))<=122)
little_letter_str[little_letter ++] = *(str + i);
i++;
}
/*
*检验筛选结果
puts(num_str);
puts(little_letter_str);
puts(big_letter_str);
*/
_sort( num_str, strlen(num_str));
_sort( big_letter_str, strlen(big_letter_str));
_sort( little_letter_str, strlen(little_letter_str));
printf("%s%s%s\n",num_str,little_letter_str,big_letter_str);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询