Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/10/2015, 21:09
vizen
 
Fecha de Ingreso: enero-2014
Mensajes: 60
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: [ayuda]Comparar una Cadena de Caracteres con un Array de Punteros

Código c:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5.     char *estaciones[]={"primavera","verano","otoño","invierno"}; // array de punteros
  6.     char salida[9]; //array con 10 elementos 9 + '\0' --> cadena de caracteres
  7.     int  n_estac=sizeof(estaciones)/sizeof(estaciones[0]); // numero de cadenas
  8.     int  encontrado=0; // marca si los caracteres coinciden
  9.  
  10.     printf("escribe con minúsculas el nombre de una estación del año: ");
  11.     scanf("%s", salida);
  12.  
  13.     for(int i=0; i<n_estac; i++) // combia de estacion
  14.         for(int ii=0; ; ii++) // recorre los caracteres de la estacion
  15.             if(estaciones[i][ii]=='\0' && salida[ii]=='\0' && encontrado>0){
  16.             // se ha llegado al final de las dos cadenas y el nombre coincide
  17.                 printf("\nhas escrito la estación número %i del año correctamente\n", i+1);
  18.                 return 0; // asi que lo visualizamos y cerramos el programa
  19.             }
  20.             else
  21.                 if(estaciones[i][ii]==salida[ii]) encontrado++;
  22.                 // el caracter comparado coincide
  23.                 else { encontrado=0; break; }
  24.                 // el caracter comparado no coincide asi que cambiamos de estacion con break
  25.     printf("\nel nombre que has escrito no es correcto\n\n");
  26.     // hemos recorrido todas las estaciones y no coincide ninguna
  27.     return 0;
  28. }