Skip to content

Instantly share code, notes, and snippets.

@ahmubashshir
Created April 8, 2020 09:56
Show Gist options
  • Save ahmubashshir/be4f9a2b07890a2ad69e0f61d461d57d to your computer and use it in GitHub Desktop.
Save ahmubashshir/be4f9a2b07890a2ad69e0f61d461d57d to your computer and use it in GitHub Desktop.
/*
*
* Copyright Ahmad Hasan Mubashshir <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*/
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Functon for swapping values
// @param char* a, b
// @return none
void swap(char* a, char* b)
{
*a^=*b;
*b^=*a;
*a^=*b;
}
// Main sorting function.
// @param char* str, str_len
// @return none
void sort(char* str, unsigned len)
{
for(int i = 0; i<len; i++)
{
for(int j = i; j<len; j++)
{
if( isdigit(str[i]) && isdigit(str[j]) && str[i]>str[j]) swap( &str[i], &str[j]);
else if ( !(isdigit(str[i]) || isdigit(str[j])) && str[i]>str[j]) swap( &str[i], &str[j]);
}
}
}
int main()
{
freopen("sort.in", "r", stdin);
freopen("sort.out", "w", stdout);
unsigned in; char str[79];
scanf("%u",&in);
while(in--)
{
scanf("%s", str);
sort(str, strlen(str));
printf("%s\n",str);
}
}
2
a2c1b
ai5d2k3x325x
a1b2c
ad2i2k3x355x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment