如何按ASCII顺序排序字符串

How Sorting a String by ASCII order

本文关键字:排序 字符串 顺序 ASCII 何按      更新时间:2023-10-16

我只是做一个程序排序字符串按字母顺序,但我有问题,如果我是输入数字,它不显示在输出。如何按ASCII顺序排序。有谁能帮忙吗?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void sort_string(char*);
int main()
{
   char string[100];
   printf("Enter some textn");
   gets(string);
   sort_string(string);
   printf("%sn", string);
   return 0;
}
void sort_string(char *s)
{
   int c, d = 0, length;
   char *pointer, *result, ch;
   length = strlen(s);
   result = (char*)malloc(length+1);
   pointer = s;
   for ( ch = 'A' ; ch <= 'z' ; ch++ ) // i don't know how add range
   {
      for ( c = 0 ; c < length ; c++ )
      {
         if ( *pointer == ch )
         {
            *(result+d) = *pointer;
            d++;
         }
         pointer++;
      }
      pointer = s;
   }
   *(result+d) = '';
   strcpy(s, result);
   free(result);
}

对不起,如果我的代码仍然不好,我还在学习c++

当您查看ASCII表时,数字'0'在0x30开始,在0x39以'9'结束。在循环中,第一个字母以'A'开头,在0x41上。只要从'0'到'z'开始循环,它也会包括数字。(它还将包括<, @等符号…)