在一行上输入一个长度为
,仅由大小写字母和数字构成的字符串
,代表输入的字符串。
在一行上输出一个字符串
,代表排序后的答案。
Ihave1nose2hands10fingers
0112Iaadeeefghhinnnorsssv
#include <stdio.h> #include <string.h> #define MAXSTRLEN 1000 int main() { char str[MAXSTRLEN + 1] = {0}; char i; int len, j; scanf("%[^\n]", str); len = strlen(str); for (i = '0'; i <= '9'; i++) { j = 0; while (j < len) { if (str[j] == i) { printf("%c", i); } j++; } } for (i = 'A'; i <= 'Z'; i++) { j = 0; while (j < len) { if (str[j] == i) { printf("%c", i); } j++; } } for (i = 'a'; i <= 'z'; i++) { j = 0; while (j < len) { if (str[j] == i) { printf("%c", i); } j++; } } return 0; }
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> void swap(char* a, char* b); void sort_pic(char pic[], int len_pic); int main() { int len_pic = 0, b; char pic[1001]; fgets(pic, 1001, stdin); pic[strcspn(pic, "\n")] = '\0'; len_pic = strlen(pic); if (len_pic < 1 || len_pic > 1000) { return 0; } sort_pic(pic, len_pic); printf("%s", pic); return 0; } void swap(char* a, char* b) { char temp = *a; *a = *b; *b = temp; } void sort_pic(char pic[], int len_pic) { int i = 0, j = 0; for (i = 0; i < len_pic; i++) { for (j = 0; j < len_pic - 1 - i; j++) { if ((int)pic[j] > (int)pic[j + 1]) { swap(&pic[j], &pic[j + 1]); } } } }
#include <stdio.h> int main() { char input[1000],a[1]; gets(input); int len=strlen(input); for(int i=0;i<len-1;i++){ for(int j=i+1;j<len;j++){ if (input[i]>input[j]){ a[0]=input[i]; input[i]=input[j]; input[j]=a[0]; } } } printf("%s",input); }
#include <stdio.h> int main() { char s[1000]; unsigned int x[75] = {0}, L; gets(s); L = strlen(s); for (int i = 0; i < L; i++) { x[s[i] - 48]++; } for (int i = 0; i < 75; i++) { while (x[i]--) { printf("%c", i + 48); } } return 0; }
#include <stdio.h> #include <stdlib.h> #include <string.h> int comper(const void * a,const void * b) { return (* (char*)a-*(char*)b); } int main() { char arr[1001]; fgets(arr,sizeof(arr),stdin); int len=strlen(arr); int cn=sizeof(arr[0]); qsort(arr,len,cn,comper); for(int i=0;i<len;i++) if(arr[i]!='\n') printf("%c",arr[i]); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> #include <stdlib.h> //该函数的参数类型使用了const void *,这是一种通用的指针类型,可以指向任何类型的数据。 int compare(const void* a, const void* b) { return (*(char*)a) - (*(char*)b); } //先将a和b强制转换成char类型的指针,然后通过外面的*获取指针指向的值,然后比较 int main() { char arr[1000];//输入的字符 int i = 0; scanf("%[^\n]", &arr); int sz = strlen(arr); qsort(arr, sz, sizeof(char), compare);//qsort用法其中arr表示排序数组,sz表示数组的长度,sizeof(char)表示数据类型,compare表示比较函数。 //通常使用qsort函数时,后面的compare写法是固定的,恒为上面的写法 for (i = 0; i < sz; i++) { printf("%c", arr[i]); } return 0; }
#include <stdio.h> #include <string.h> int main() { char sts[1001] = { 0 }, mid; int i, j, len; scanf("%s",sts); len = strlen(sts); for(i = 0 ; i <= len - 2 ; i++){ for(j = i + 1 ; j <= len -1 ; j++){ if(sts[i] > sts[j]){ mid = sts[i]; sts[i] = sts[j]; sts[j] = mid; } } } printf("%s",sts); return 0; } //经典选择排序法
//字符串排序,快排(ASCII码值从小到大) //1.return不要忘 2.=在下边。若在上边出现12输出21的情况。 #include <stdio.h> #include <string.h> //1 2 // ij pivot=1 void Qsort(char *str, int L, int R) { if (L >= R) return; int i, j; i = L; j = R; char pivot; pivot = str[L]; while (i < j) { while (str[j] > pivot && i < j) //last:i=j j--; while (str[i] <= pivot && i < j) i++; if (i < j) { char temp = str[j]; str[j] = str[i]; str[i] = temp; } } char temp = str[i]; str[i] = str[L]; str[L] = temp; //这里无限循环了 Qsort(str, L, i - 1); Qsort(str, i + 1, R); } int main() { char str[1000] = {0}; scanf("%s", str); int len = strlen(str); int R = len - 1; //R为右边界,L为左边界 int L = 0; Qsort(str, L, R); printf("%s", str); return 0; }
#include <stdio.h> #include<stdlib.h> #include<string.h> int comp(const void *a, const void *b) { return *(char *)a - *(char *)b; } int main() { char arr[1000]={0}; while(scanf("%s", arr) != -1) { int n=strlen(arr); qsort(arr, n, sizeof(char), comp); printf("%s\n", arr); } return 0; }