Autor
|
Tema: Ayuda! con el IF (Leído 1,649 veces)
|
TopoJunior
Desconectado
Mensajes: 40
|
#include <stdio.h> main() { char producto[40]; printf("Hola, que producto quiere?\n"); printf("Hay , 1 - patatas, 2 - tomates\n"); scanf("%s", producto); if (producto=="patatas") { printf("Hola\n"); } else { printf("ERROR"); }; while(1); }
Bueno.. quiero que cuando ponga patatas salga eso, no quiero mas xD!, creo que está bien, pero en el scanf pongo patatas y me salta el else.... Porfavor si no es así, diganme como sería!!!
|
|
|
En línea
|
|
|
|
DickGumshoe
|
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í: #include <stdio.h> #include <string.h> int main() { char producto[40]; printf("Hola, que producto quiere?\n"); printf("Hay , 1 - patatas, 2 - tomates\n"); if ((strcmp(producto , "patatas"))== 0) { } else { } 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.
|
|
|
En línea
|
|
|
|
TopoJunior
Desconectado
Mensajes: 40
|
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í: #include <stdio.h> #include <string.h> int main() { char producto[40]; printf("Hola, que producto quiere?\n"); printf("Hay , 1 - patatas, 2 - tomates\n"); if ((strcmp(producto , "patatas"))== 0) { } else { } 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"); }
|
|
|
En línea
|
|
|
|
DickGumshoe
|
Se pone el "==0" porque la función devuelve 0 si las cadenas son iguales, y otro número si son diferentes. O sea, diríamos: "Si las cadenas son iguales, imprime "Hola", sino, imprime "ERROR". Los dos paréntesis están de más. Pueden ponerse o no, no son obligatorios. Podría ser también así: if (strcmp(producto , "patatas")== 0)
Saludos.
|
|
|
En línea
|
|
|
|
TopoJunior
Desconectado
Mensajes: 40
|
Se pone el "==0" porque la función devuelve 0 si las cadenas son iguales, y otro número si son diferentes. O sea, diríamos: "Si las cadenas son iguales, imprime "Hola", sino, imprime "ERROR". Los dos paréntesis están de más. Pueden ponerse o no, no son obligatorios. Podría ser también así: if (strcmp(producto , "patatas")== 0)
Saludos. Muchisimas gracias, me sirvió 100% ))))
|
|
|
En línea
|
|
|
|
DickGumshoe
|
De nada, me alegro de que lo hayas entendido
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Amigos necesito ayuda con un background para un logo de una web ayuda.
Diseño Gráfico
|
™Carlos.®
|
2
|
3,466
|
14 Agosto 2004, 00:23 am
por ™Carlos.®
|
|
|
[Ayuda] Necesito ayuda para crear un buen video uso AF y Flash.
Diseño Gráfico
|
XXXXXX
|
1
|
5,555
|
11 Noviembre 2009, 00:17 am
por Sub_Cero
|
|
|
Ayuda por davor ayuda os ruego ayuda XD (SOLUCIONADO)
Hardware
|
XxRekcahlExX
|
6
|
10,654
|
24 Mayo 2010, 00:56 am
por Aprendiz-Oscuro
|
|
|
AYUDA -.- ahora no entro más en 4chan (tengo una duda, ayuda por favor)
Foro Libre
|
Draklit
|
6
|
8,848
|
15 Octubre 2010, 03:14 am
por Draklit
|
|
|
sist lince indumentaria ayuda ayuda!!!!!!!!!! problemon que hice en le trabajo
Software
|
paola03
|
1
|
4,989
|
11 Marzo 2011, 01:09 am
por charola42
|
|