Colección de citas famosas - Slogan de motivación - ¿Por qué el lenguaje C no usa strcmp para ordenar varias cadenas en orden lexicográfico?

¿Por qué el lenguaje C no usa strcmp para ordenar varias cadenas en orden lexicográfico?

Cree las subfunciones strcmp y strcpy usted mismo, o utilice el bucle for para procesar módulos de subfunciones que puedan lograr la misma función.

La función de la subfunción strcmp es comparar los caracteres de las cadenas str1 y str1.

Utilice un bucle for para lograr esta función.

Implementación de función, función de simulación

void mystrcmp(char *str1, char *str2)

{

int I; p>

for(I = 0; str 1[I]| | str 2[I]; i )

if(str 1[I] lt; str2[i])< /p >

retrun-1;

else if(str 1[I] gt; str2[i])

Regresar 1;

Regresar 0;

}

La subfunción de copia strcpy también se implementa mediante un bucle for.

void mystrcpy(char *str1, char *str2)

{

int I = 0;

while(str1[i ]=str2[i])

i ;

}

Puede utilizar este módulo de funciones en la ubicación correspondiente.

for(I = 0;i ltn-1;i)

{

for(j = I 1;j ltn;j)

{

No hay ningún problema al ordenar bucles grandes.

for(;k ltl;k)

{

if(*(str[i] k)!=*(str[j] k) ) //Aquí sólo se juzga la desigualdad, no la magnitud.

Esta debería ser una parte contrastante, pero se siente mal.

Debe ser

for(k = 0; str[I][k]| | str[j][k]; k )

{

if(str[i][k]>Str[j][k]) // También puedes usar punteros Cuando son grandes, se intercambian. Cuando son pequeños, no se intercambian. .

Código de intercambio

}

l=min(strlen(str[i]), strlen(str[j]);

l = strlen(str[I]) gt; strlen(str[j])? strlen(str[I]): strlen(str[j]);

Sin subfunción o si - else .

temp = str[j];

str[j]= str[I];

str[I]= temp;

Este es el código para el intercambio. Las cadenas no se pueden intercambiar de esta manera. Puedes usar strcpy para copiar funciones o intercambiar caracteres uno por uno.

La cadena completa no se puede asignar con =.