Requisitos:
- De acuerdo con el primer carácter de la cadena, ordene el
árbol de estudiantes abeja nueva en el orden de az => abeja árbol de estudiantes nuevo - Use tres métodos para comparar las primeras letras de dos cadenas:
1 juicio de matriz
2 juicio de puntero
3 juicio mixto
Parte pública :
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char* arr[] = { "cshdf", "ehsdhf", "bjhdjfhd","abee" };
bubble(arr, 4);
for (int i = 0; i < 4; i++)
{
printf("%s\n", arr[i]);
}
system("pause");
return EXIT_SUCCESS;
}
Sección de funciones
Juicio de matriz:
void bubble(char ** arr,int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if (arr[j][0] > arr[j+1][0])
{
char * temp = arr[j];
arr[j] = arr[j+1];
arr[j + 1] = temp;
}
}
Juicio puntero :
void bubble(char ** arr,int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if (**(arr + j) < **(arr + j + 1))
{
char * temp = *(arr+j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
Juicio mixto:
void bubble(char ** arr,int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if (*arr[j] > *arr[j + 1])
{
char * temp = arr[j];
arr[j] = arr[j+1];
arr[j + 1] = temp;
}
}
Análisis de código:
Primero entiendes cómo comparar cadenas? Nada más que comparar cadenasValor ASCII de la primera letraTamaño, entonces podemos pensar fácilmente en el algoritmo de clasificación de burbujas de la matriz de enteros que aprendimos, el proceso es: carácter => ASCLL => burbuja
Juicio de matriz:
char* arr[] = { "cshdf", "ehsdhf", "bjhdjfhd","abee" };
Puede considerarse como una matriz bidimensional, por ejemplo: arr [0] [0] = c;
juicio del puntero :
Juicio mixto: