¿Por qué el lenguaje C no usa strcmp para ordenar varias cadenas en orden lexicográfico?
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> 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 =.