Dev - C++ - comparar dos cadenas de caracters

   
Vista:

comparar dos cadenas de caracters

Publicado por Sadrac93 (4 intervenciones) el 22/02/2016 02:36:48
Hola buenas noches compañeros del foro:
Mi problema es el siguiente, estoy haciendo un programa en C que dadas dos cadenas de caracteres se analice elemento por elemento y devuelva un 0 si son iguales o un 1 si son diferentes además se deben escribir las posiciones de los elementos en donde existen dferencias.
Hasta ahora llevo el código para comparar las cadenas usando strcmp:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#define C 100 
int main()
{
   char a[C], b[C];
 
   printf("Introduce la primera cadena: \n");
   gets(a);
 
   printf("Introduce la segunda cadena: \n");
   gets(b);
 
   if (strcmp(a,b) == 0)
      printf("0\n");
   else
      printf("1\n");
 
   return 0;
}

pero la verdad que no se cómo hacer para indicar en dónde existen las diferencias cuando las cadenas no son iguales, podrían de favor ayudarme pues aún soy un poco novato en este lenguaje como pueden observar, ya busqué ejemplos, en libros o algún código que me pueda servir pero sólo me confundo más.
De antemano gracias por su atención y por su tiempo.
Saludos cordiales!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

comparar dos cadenas de caracters

Publicado por Yamil Bracho (6 intervenciones) el 22/02/2016 03:09:49
strcmp te retorna lo siguiente : a) Menor que cero si a es menor que b, 0 si a = b y 1 si a es mayor que b. Asi que el código te quedaría algo como
:
1
2
3
4
5
6
7
8
9
ret = strcmp(a, b);
if (ret < 0) {
    printf("a es menor que b");
} else if(ret > 0) {
      printf("b es menor que a");
} else {
      printf("a es igual a b");
   }
Reemplace este texto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

comparar dos cadenas de caracters

Publicado por Sadrac93 (4 intervenciones) el 22/02/2016 04:09:51
ok muchas gracias por tu ayuda, pero sigo sin saber cómo indicar las posiciones de la cadena en donde existen diferencias no se si me explique, gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

comparar dos cadenas de caracters

Publicado por agustin (306 intervenciones) el 23/02/2016 18:29:22
Es algo muy básico y deberías de esforzarte un poco más para intentar solucionarlo tu.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#incluye <stdio.h>
#incluye <string.h>
 
char a []={"Pepito"};
char b []={"pepita"};
int i, diferencias=0;
 
if (strlen (a)>strlen (b))
   printf ("la cadena 'b' es más corta que la cadena 'a'");
else  if (strlen (a)<strlen (b))
    printf ("la cadena 'a' es más corta que la cadena 'b'");
else {
   for(i=0;i <strlen(a);i++){
      if(a[i] != b [i]){
         diferencias++;
         printf("son diferentes en la posición %i\n", i);
      }
   }
   if(diferencias > 0)
      printf ("las cadenas son diferentes\n");
   else
      printf ("las cadenas son iguales\n");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar