Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: OlebN en 12 Julio 2014, 19:52 PM

Título: Ayuda en C [Basico]
Publicado por: OlebN en 12 Julio 2014, 19:52 PM
Intentaré explicarme lo mejor posible estoy iniciando en esto de la programación y necesito de su ayuda

Estoy elaborando un código y quisiera hacer lo siguiente:

Quiero que en un scanf("%s") te valide o invalide lo que coloquen, por ejemplo... Quiero que solamente puedan colocar "avion, elefante, carro" sino que le de invalido.. Intente hacerlo de la siguiente manera:

scanf("%s", palabra);
if(palabra = avion)
printf("Palabra %s", palabra);
else if(palabra = elefante)
printf("Palabra %s", palabra);
else if(palabra = carro)
printf("Palabra %s", palabra);
else
printf("Nombre invalido, tenga cuidado con las mayusculas y minusculas");


Pero me tira errores en las condiciones de los if me dice que no existen ''elefante'' (por ejemplo), intenté definirlas con char y me tira estos errores al compilar:

alineacion.c:257:12: error: tipos incompatible en la asignación al tipo 'char[255]' del tipo 'char'
alineacion.c:259:17: error: tipos incompatible en la asignación al tipo 'char[255]' del tipo 'char'
alineacion.c:261:17: error: tipos incompatible en la asignación al tipo 'char[255]' del tipo 'char'

Agradecería su ayuda, disculpen las molestias
Título: Re: Ayuda en C [Basico]
Publicado por: Stakewinner00 en 12 Julio 2014, 20:10 PM
Primero, las comparación son con "==" no con un solo "=" sino dos.
Para comparar las palabras podrías usar strcmp como en este ejemplo de tu code
Código (cpp) [Seleccionar]
scanf("%s", palabra);
    if(strcmp(palabra, "avion") == 0)
    printf("Palabra %s", palabra);
Título: Re: Ayuda en C [Basico]
Publicado por: OlebN en 12 Julio 2014, 23:13 PM
Muchisimas gracias.

Tema solucionado  :)