Tema en lenguaje C _ aplicación de matriz de puntero _ clasificación de matriz de cadena

Ordenar matriz de cadenas (matriz de punteros)

Descripción

Ingrese tres cadenas y envíelas en orden ascendente, la longitud de la cadena es inferior a 1000

Entrada

Cadena de 3 líneas

Salida

Salida en 3 líneas de pequeña a grande

Entrada de muestra

cde
afg
abc

Salida de muestra

abc
afg
cde

El código específico es el siguiente:

 #include<stdio.h>
 #include<string.h>
 #define N 3
 void sort(char *pc[N],int n);
 int main()
 {
    
    
  char a[N][100],*p[N]; //此处声明了一个指针数组 
  int i,j;
  for(i=0;i<N;i++)
  p[i]=a[i];  //让指针指向a[](行地址) 
  for(i=0;i<N;i++)
  scanf("%s",p[i]);
  //scanf("%s",a[i]));
  //scanf("%s",*(p+i));
  sort(p,N);
  for(i=0;i<N;i++)
  printf("%s\n",p[i]);
  return 0;
 }
 
 void sort(char *pc[N],int n)
 {
    
    
  int i=0,j=0,flag;
  char t[100];
  for(i=0;i<N-1;i++)  //此处采用的是改进的冒泡排序法
  {
    
    
   flag=0;
   for(j=0;j<N-i-1;j++)
   {
    
    
    if(strcmp(pc[j],pc[j+1])>0)//字典顺序(从小到大)
    {
    
    
     strcpy(t,pc[j]);    //注意:strcmp()和strcpy()都是对地址进行操作
     strcpy(pc[j],pc[j+1]);
     strcpy(pc[j+1],t);
     flag=1;
    }
   }
   if(!flag)
   break;
  }
 }

Supongo que te gusta

Origin blog.csdn.net/qq_51366851/article/details/112989220
Recomendado
Clasificación