Foros del Web » Programación para mayores de 30 ;) » C/C++ »

leer una cadena de caracteres.

Estas en el tema de leer una cadena de caracteres. en el foro de C/C++ en Foros del Web. Hola! estab haciendo un ejercicio y no me ha salida asi que he mirado la solucion me gustaria saber si lo he entendido bien: Código: ...
  #1 (permalink)  
Antiguo 07/12/2007, 12:24
 
Fecha de Ingreso: noviembre-2004
Mensajes: 149
Antigüedad: 19 años, 5 meses
Puntos: 0
leer una cadena de caracteres.

Hola!
estab haciendo un ejercicio y no me ha salida asi que he mirado la solucion
me gustaria saber si lo he entendido bien:
Código:
#include <stdio.h>

#define MAX 20

void main()
{
   char C1[MAX],C2[MAX];
   int i;

   printf( "\nIntroduzca la primera palabra y pulse enter:\n" );
   gets( C1 );
   printf( "\nIntroduzca la segunda palabra y pulse enter:\n" );
   gets( C2 );

   i=0;
   while ((C1[i]==C2[i]) && (C1[i]!='\0') && (C2[i]!='\0'))
      i++;
   if((C1[i]=='\0') && (C2[i]=='\0'))
      printf( "Son iguales\n" );
   else
      printf( "Son diferentes" );
}
aqui lee las cadenas introdcidas por el usuario.La funcion gets(C1), haria la mismo que scanf("%s",&C1[i]);?.
Código:
 printf( "\nIntroduzca la primera palabra y pulse enter:\n" );
   gets( C1 );
   printf( "\nIntroduzca la segunda palabra y pulse enter:\n" );
   gets( C2 );

   i=0;
aqui compara las letras de cada cadena empezando por la posicion 0 hasta la final incrimentando la i cada vez,hasta que llega a la ultima posocion de la cadena que sera 0.
Código:
while ((C1[i]==C2[i]) && (C1[i]!='\0') && (C2[i]!='\0'))
      i++;
y finalmente aqui mira que las cadenas acaben en la misma posicion de i.Si es asi son iguales y sino diferente s no? No se deberia hacer con i y j, y no solo con i ya que no son el mismo vector
Código:
if((C1[i]=='\0') && (C2[i]=='\0'))
      printf( "Son iguales\n" );
   else
      printf( "Son diferentes" );
}
__________________
¨`~*'¤^v-¥-()->»[: "3£ 1NƒîêRNø Nø ê$ UN Må£ £UGåR" :]«<-()-¥-v^¤'*~´¨

Última edición por mawster; 08/12/2007 a las 09:35
  #2 (permalink)  
Antiguo 07/12/2007, 16:47
 
Fecha de Ingreso: noviembre-2004
Mensajes: 149
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: leer una cadena de caracteres.

Alguien me lo confirma?
__________________
¨`~*'¤^v-¥-()->»[: "3£ 1NƒîêRNø Nø ê$ UN Må£ £UGåR" :]«<-()-¥-v^¤'*~´¨

Última edición por mawster; 08/12/2007 a las 09:36
  #3 (permalink)  
Antiguo 09/12/2007, 06:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 5
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: leer una cadena de caracteres.

El programa lo que hace es ir mirando las dos cadenas desde el principio hasta el final. En el momento que encuentre un caracter diferente sale del while y entraría en el else diciendote que son diferentes.
Cuando son exactamente iguales, caracter a caracter, el while termina por completo (i=20) y en el if compararía el último caracter, que si son iguales entonces las palabras serían iguales.

Mirate la funcion strcmp que compara cadenas.

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:19.