Clasificación del diccionario C
Primero déjame decirte unas palabras. Este programa que escribiste realmente molesta a los lectores. De todos modos, me tomó algo de tiempo descubrir qué estabas haciendo.
No estás clasificando, solo estás generando en orden lexicográfico. El orden no ha cambiado, ¿verdad? .
El primero es un error gramatical:
else if (replacement【m】【n】= temp【n】) ///"="
count 1;
El siguiente paso es una pregunta lógica:
for (int n = 0; n ltcompare (ch[m], ch[J]); n) p>
if (reemplazar [m] [n] lt; temperatura
{ for (int l = 0; l ltstrlen (ch [m]); l )
temp【 l] = reemplazar [m] [l];
j = m;
Romper
}
si no; (reemplazar [m][n]=temporal[n])
count 1;
Este juicio no implementa la comparación del orden del diccionario. Por ejemplo, cuando se usan adjk y Bdkj. entrada, el juicio No se detendrá en la diferencia entre A y B, sino que continuará juzgando a J y k
Simplemente agregue otra oración
Otros
. Break;
Pero aquí tienes algunos consejos:
1.
for (int k = 0; k lt count; k )
if (exist[k] == true)
Break;
int J = k
No uses k así. El estándar actual es for (int. I; I in) es una variable local y no tiene ningún efecto si está fuera del bucle
2.
for(int n = 0; n ltcompare. (ch[m], ch[J]);n)
La función de comparación no se utiliza aquí. Ejecutará todos los bucles si el valor sigue siendo el mismo, no hay problema. Una vez cambiado, esto es un pozo sin fondo, húndelo tan profundo como quieras
3. ¿No sería bueno comparar números de doble precisión con minúsculas o mayúsculas? space.
Eso es todo, por favor vamos~
Finalmente, recomiendo usar programas estilo C.
Aunque lo que escribí puede no ser bueno, es un programa C real...
El siguiente programa C puede satisfacer sus necesidades:
# include ltiostream gt
# incluir lt algoritmo gt
# incluir lt cadena gt
# incluir ltvector gt
# incluir ltcctype gt
Usando el espacio de nombres std
Comparador booleano (Cadena a, Cadena b) {
char c1, C2;
for (int I = 0; i lta .length() ; i)
{
si ((c 1 = bajar(a[I])))! = (C2 = bajar (b【I】))){
Regresar c 1 lt
}
}
<; p>Devuelve verdadero}
int main() {
Vector lt cadena gtvec
Temperatura de cadena;
CIN gt; gttemp
mientras(temp!= "#") {
vec . push_back(temp);
CIN gttemp; p>
}
sort(vec.begin(),vec.end(),comparator);
for(vector lt; string gt* const _ iterator ITER = vec . comenzar(); iter ltvec . fin(); iter)
{
cout lt*iter lt. ltendl
}
devuelve 0;
}