Lenguaje C, en el entorno C++, use punteros para ejecutar el método de "ingresar tres cadenas y generarlas en orden de pequeña a grande", por favor deme algún consejo ~ ~
#Contiene "stdio.h"
int strcmp(char *s1, char *s2)
{
int i= 0, j = 0;
mientras(*(s1+i)!= '\0' & amp& amp*(s2+j)!='\0')
{
if(*(s 1+I)& gt;*(s2+i))
Devuelve 1;
if(*(s 1 +I)<*(s2+i))
return-1;
i++, j++;
}
si (*(s1+i)=='\0 ')
{
if(*(s2+j)=='\0 ')
Devuelve 0;
Otros
retorno-1;
}
Devuelve 1;
}
void strcpy(char *s1, char *s2)
{
int I = 0;
mientras(*(s2 + i)! ='\0')
{
*(s 1+I)= *(S2+I);
i++; p>
}
*(s 1+I)= '\ 0'
}
void main()
{
char s1[50], s2[50], S3[50];
char s[50]; tres cadenas:\ n ");
obtiene(s 1);
obtiene(S2);
obtiene(S3);
p>
if(strcmp(s1, s2)>0)
{
strcpy(s, s 1);
strcpy( s1, S2);
strcpy(s2, s);
}
if(strcmp(s1, s3)>0)
{
strcpy(s, s 1);
strcpy(s1, S3);
strcpy(s3, s
);}
if(strcmp(s2, s3)>0)
{
strcpy(s, S2);
strcpy (s2, S3);
strcpy(s3, s);
}
Printf("Salida descendente: \ n "); p>
printf("%s\n%s\n%s\n ",s1,s2,S3);
}
Tenga en cuenta que eliminé el string.h, por lo que strcpy y Strcmp aquí están escritos por nosotros mismos, no por funciones de biblioteca.
Cuando ingresas una cadena, termina con un carácter de espacio en blanco. Ingrese y los espacios están bien. No es necesario ingresar '\0';
Además, la solución del cartel original se puede lograr y la he probado.
La comparación del tamaño de una cadena se refiere a ordenar por diccionario, no por longitud. Creo que deberías saberlo.
Por ejemplo:
Ni Hao
Ni
Ángulo
Después de ordenar
Ángulo
Níquel
Ni Hao