在一行上输入一个长度为
,仅由大小写字母和数字构成的字符串
,代表输入的字符串。
在一行上输出一个字符串
,代表排序后的答案。
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;
}