Cita de: DickGumshoe en 1 Julio 2012, 15:58 PM
Hola.
Para comparar cadenas, no puede hacerse tal y como compararíamos un número o un carácter (y así es como tú lo tienes).
Para compararlas, hay que usar la función strcmp, incluida en la librería string.h .
La función devuelve 0 si las cadenas son iguales, y otro valor si son distintas.
Es decir, el programa quedaría así:Código (c) [Seleccionar]#include <stdio.h>
#include <string.h>
int main()
{
char producto[40];
printf("Hola, que producto quiere?\n");
printf("Hay , 1 - patatas, 2 - tomates\n");
scanf("%s", producto);
if ((strcmp(producto, "patatas"))== 0)
{
printf("Hola\n");
}
else
{
printf("ERROR");
}
while(1);
return 0;
}
También te recomiendo usar la función gets (o mejor aún, fgets), para pedir cadenas de caracteres, ya que scanf te coge solo hasta el primer espacio que introduce el usuario.
Cualquier duda, pregunta
Espero haberte ayudado.
Saludos.
Muchas gracias!!! me sirvio, gracias, pero me puedes explicar todo ? es decir:
if ((strcmp(producto, "patatas"))== 0) // aqui dice, if (( porque hay que poner dos paréntesis envez de uno ??????, luego, tenemos strcmp(producto, "patatas"))==0 porque hay que poner ))==0 ? eso que significa?
{
printf("Hola\n");
}
else
{
printf("ERROR");
}