Título: Cadenas c++ Publicado por: jaimeramirez10 en 11 Junio 2013, 15:50 pm Para la universidad realice un programa en c++, se pedia que se digitaran dos cadenas y que se comprobara si las dos cadenas tenian las mismas letras, el problema es que si pongo las letras en desorden no dice que son iguales, si se pone espacio en la primera cadena se salta de una vez y dice que son iguales, aqui el programa:
#include <iostream> #include<cstring> using namespace std; int main(){ char cadena1[1000]; char cadena2[1000]; int n; cout<<"cadena1 es: "; cin>>cadena1; cout << "cadena2 es: "; cin>>cadena2; if (strcmp(cadena1,cadena2)!=0){ cout<<"Las cadenas no son iguales\n"; } if(strcmp(cadena1,cadena2)==0){ cout<<"Las cadenas no son iguales\n"; } system("Pause"); } Gracias por la ayuda Título: Re: Cadenas c++ Publicado por: amchacon en 11 Junio 2013, 16:11 pm Código Has puesto el mismo texto en las dos comparaciones ;-) Por cierto, C++ incluye un tipo de cadena más fácil de usar (string): Código
Título: Re: Cadenas c++ Publicado por: rir3760 en 11 Junio 2013, 16:35 pm el problema es que si pongo las letras en desorden no dice que son iguales Antes de la comparacion debes ordenar el contenido de las dos cadenas. Si se trata de arrays de caracteres puedes utilizar la función qsort (prototipo en <cstdlib>) y una propia, para objetos de la clase string la función sort (el encabezado aquí es <algorithm>).si se pone espacio en la primera cadena se salta de una vez Eso sucede porque al utilizar el operador "<<" este lee una palabra. En su lugar utiliza la función getline (http://www.cplusplus.com/reference/istream/istream/getline/).En el caso de utilizar la clase string es relativamente fácil: Código
Un saludo Título: Re: Cadenas c++ Publicado por: CCross en 11 Junio 2013, 16:38 pm Buenas!!
Creo que lo que intentas es buscar si las dos cadenas son anagramas al ser asi te dejo una posible solución Código
Saludos ;D |