elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Intento comparar cadenas [novato]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Intento comparar cadenas [novato]  (Leído 13,276 veces)
Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: Intento comparar cadenas [novato]
« Respuesta #10 en: 5 Mayo 2012, 18:55 pm »

Acortando código:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. main()
  5. {
  6.   char texto[100];  
  7.  
  8.   printf ("Introduzca la frase correcta: "); fgets(texto,sizeof(texto),stdin);
  9.   while(strcmp(texto,"hola\n")!=0) {
  10.   printf ("Error!\nIntroduzca la frase correcta: "); fgets(texto,sizeof(texto),stdin);
  11.   }
  12.   printf ("La frase es correcta.\n");
  13. }

Joder, que aburrido estoy XD

EDIT: ¿De que libro estás aprendiendo C?


« Última modificación: 5 Mayo 2012, 19:03 pm por Tzhed\ Kyperf/ » En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #11 en: 5 Mayo 2012, 19:00 pm »

jajaja...  eso estuvo bueno, vamos eso nunca se me hubiera ocurrido, esta muy bueno eh!! lo mismo pero mas pequeño


En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #12 en: 5 Mayo 2012, 19:03 pm »

Realmente que es lo que hace esta linea:

fgets(texto,sizeof(texto),stdin);

EDITO:
Realmente de muchos libros, no solo de uno, llevo uno de análisis de algoritmos y dos de c:

1) Programacion.en.C.Metodologia.Algoritmos.y.Estructura.de.datos.Editorial.McGraw-Hill
2) Programacion en C Metodologia, Algoritmos y Estructurade datos [Luis Joyanes Aguilar & Ignacio Zahomero Martines]
3) Como.Programar.en.C.C.Plus.Plus.-.Deitel.Prentice-Hall
4) Lo que pueda aprender aqui en el foro
« Última modificación: 5 Mayo 2012, 19:06 pm por barnix456 » En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #13 en: 5 Mayo 2012, 19:21 pm »

La definicion de fgets() es la siguiente:

char *fgets(char *cadena, int n, FILE *stream);

"Basicamente dice: copiar una cadena de longitud menor a n que este en stream y guardarla en cadena"

...aunque te parezca un poco rara te explico en español lo que significa:

*stream es una fuente de donde se obtiene la cadena de caracteres, esta fuente debe ser un archivo. En tu caso stdin es un archivo donde se almacena lo que escribes por teclado, y se denomina buffer de entrada.

n es la cantidad de caracteres que quieres obtener como maximo de *stream. Comunmente, le asignamos a n la longitud de tu cadena.

cadena es el nombre de tu variable donde se debe almacenar lo que obtendas de *stream

... una restriccion que impone la funcion fgets() es la siguiente:

Citar
"Ningún carácter adicional es leído después del carácter de nueva línea ('\n') o después de un final de fichero (EOF)"
« Última modificación: 5 Mayo 2012, 19:27 pm por exel » En línea

barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #14 en: 5 Mayo 2012, 19:26 pm »

:o pues a si que le entienda, no mucho tendre que practicar un poco mas sonbre esto, para que lo domine un poco, gracias EXEL
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #15 en: 5 Mayo 2012, 19:33 pm »

Anteriormente dijiste esto:

edito:
tambien esta mal, por que escribo la frase correcta "ola" y dice: frase incorrecta, y lo que deberia decir es que esta bien y salir, aparte el programa nunca se cierra, son siemples errores, intentare analizar ese nuevo modelo, eso es nuevo para mi... :)

La respuesta es que quieres comparar la cadena obtenida con fgets() con la cadena "ola\n", pero, como dije anteriormente, fgets() no puede copiar el caracter '\n'. Por eso estaras comparando "ola" con "ola\n" y nunca lograras asertar.

Saludos
En línea

barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #16 en: 5 Mayo 2012, 19:37 pm »

Gracias, ese error no lo habia notado, pero bueno al final ya quedo! gracias de nuevo
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: Intento comparar cadenas [novato]
« Respuesta #17 en: 5 Mayo 2012, 20:18 pm »

yo había hecho una función para comparar dos cadenas, te puede servir si deseás alguna comparación con el fin de realizar un ordenamiento alfabético por ejemplo.
http://foro.elhacker.net/programacion_cc/ejemplo_de_ordenamientos_basicos-t358139.0.html

En línea

barnix456

Desconectado Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #18 en: 5 Mayo 2012, 20:48 pm »

ok gracias... lo revisare, cualquier informacion es buena.. :)
En línea

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

Isaac Asimov
Rodrigosolari

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Intento comparar cadenas [novato]
« Respuesta #19 en: 6 Mayo 2012, 02:25 am »

amigo una ayuda en tu problema de comparar cadenas.....  espero que sea de tu ayuda

#include<iostream>

using namespace std;

int main(){
   char cadena1[100];
   char cadena2[100];
   bool rpt = true;
   int i=0;
   cout<<"Ingrese la primera Cadena de Texto"<<endl;
   gets(cadena1);
   cout<<"Ingrese la segunda Cadena de Texto"<<endl;
   gets(cadena2);
   cout<<endl<<"\t\t\t\tComparando"<<endl<<endl;
   do{
      if(cadena1[ i ]!=cadena2[ i ]){//borra los espacios entre la i y  [], pues si no  no me lo reconoce
         rpt = false;
         break;
      }
      i++;
   }while(cadena1[ i ]!='\0' || cadena2[ i ]!='\0' );//borra los espacios entre la i y  [], pues si no  no me lo reconoce
   if(rpt){
      cout<<"La cadena de Caracteres son Identicas:  ";
      cout<<"comparacion "<<cadena1<<" = "<<cadena2<<endl;
   }
   else
      cout<<"La cadena de Caracteres son diferentes:  "<<endl;
   system("pause");
}
« Última modificación: 6 Mayo 2012, 02:30 am por Rodrigosolari » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como puedo comparar dos cadenas de texto?
Programación C/C++
linux1 8 10,657 Último mensaje 15 Octubre 2010, 15:22 pm
por xassiz~
Comparar cadenas sin usar strcmp « 1 2 »
Programación C/C++
Rockmore 12 21,402 Último mensaje 25 Octubre 2010, 07:01 am
por do-while
¿Comparar dos cadenas de caracteres en php?
PHP
Netstat89 5 11,092 Último mensaje 1 Octubre 2012, 21:21 pm
por Shell Root
Error al comparar cadenas
Programación C/C++
amchacon 1 2,573 Último mensaje 26 Enero 2013, 15:28 pm
por amchacon
Error al comparar cadenas en estructuras
Programación C/C++
ramona98 3 3,036 Último mensaje 28 Agosto 2013, 10:23 am
por do-while
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines