Comparando cadenas

ricardo daniel mateos
05 de Abril del 2004
como puedo comparar tres cadenas de texto y ordenarlas alfabeticamente.

nacho
05 de Abril del 2004
en caso de que uses char* para guardar cadenas:

#include <string.h>
.
.
.
strcmp(cad1,cad2);
.
.
.
esto retorna verdadero si son iguales.




Alejandro_
05 de Abril del 2004
Bueno, casi.

int strcmp(const char *s1, const char *s2);

devuelve 0 cuando las cadenas son iguales; un número <0 cuando s1 es menor (lexicográficamente) que s2; o un número mayor que 0 cuando s1 es mayor que s2.

Para una comparación donde no importen mayúsculas o minúsculas, puede usarse:

int stricmp(const char *s1, const char *s2);


Alejandro

Papuchi
05 de Abril del 2004
La clase string ( #include <string> ) de c++ trae implementada la comparación lexiográfica de cadenas mediante el operador <= o < simplemente.
Ejemplito:

string s1 = "abc";
string s2= "def"

si hicieras la comparación s1<s2 devolvería true.

Usando este operador puedes implementar un algoritmo de ordenación similar al que emplearías para números enteros.

Un saludo.

Alejandro_
05 de Abril del 2004
// string s1 = "abc";
// string s2= "def"

string s1 = "abc";
string s2 = "def";

Si quieres incluir las comillas en las cadenas:
string s1 = ""abc"";
string s2 = ""def"";

Alejandro