elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: duda c++  (Leído 4,560 veces)
peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
duda c++
« en: 30 Junio 2011, 23:23 pm »

teniendo el sigiente codigo:
Código:
#include <stdio.h>
#include <iostream>
main()
{
int a,b,c;

scanf(" %d",&a);

scanf(" %d",&b);

printf("0+0 \n");
printf("0+1 \n");
printf("0+2 \n");

printf("elija una opcion");
scanf(" %d",&c);

if(c==1) //envez de numero quiero una palabra
printf("resultat es: %d",0);

else if(c==2) //envez de numero quiero una palabra
printf("resultat es: %d",1);

else if(c==3) //envez de numero quiero una palabra
printf("resultat es: %d",2);

else
printf("no hi ha operacio");

system("PAUSE");
return EXIT_SUCCESS;
}

donde pone"alse if" como puedo canviar el numero por una palabra para que cuando me pregunte que opcion quiero responder en una palabra envez de un numero???


En línea

Saberuneko


Desconectado Desconectado

Mensajes: 2.182



Ver Perfil WWW
Re: duda c++
« Respuesta #1 en: 1 Julio 2011, 14:09 pm »

Utiliza un vector de caracteres (cadena): char[tamaño]
Para comparar la palabra necesitarás usar la opción stringcompare: strcmp(cadena1,cadena2)
(Para su uso necesitarás la librería string.h)

Básicamente, tus if serían:

if(strcmp(c,<palabra_deseada>)==0)
{
//hacer cosas
}

Ya que pones varias opciones, en vez de un else if, te aconsejo poner una estructura switch(c) en los casos que uses números, es fácil:

switch (variable)
{
case1:
//acciones a realizar si la variable vale '1'
break;
case2:
//acciones a realizar si la var vale '2'
break;
... etc ...
default:
//acciones a realizar si la var no cumple con ninguno de los valores anteriores
break
}

Un Saludo.


« Última modificación: 1 Julio 2011, 14:13 pm por Saberuneko » En línea

peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: duda c++
« Respuesta #2 en: 1 Julio 2011, 15:25 pm »

ace poko que empece a trabajar con c++, por lo tanto no se muxo aunque voy avanzando...

no se donde poner todo eso que me as dicho... si no es mucha molestia... me podrias decir como quedaria??? (el codigo completo)

muxas gracias
En línea

Dark Invader

Desconectado Desconectado

Mensajes: 111


Lucha hasta el final para conseguir tu objetivo.


Ver Perfil
Re: duda c++
« Respuesta #3 en: 1 Julio 2011, 16:20 pm »

Perdon por la interrupcion pero no pillo el codigo del programa¿que es lo que quieres hacer exactamente? :huh: Es que lo veo asi y no entiendo bien lo que quieres hacer,pero si es comparar cadenas ya te lo dijeron arriba,explicate un poco mejor y te digo donde van las sentencias.

Además tu programa es C pero utilizas la libreria de C++,luego para llamar al sistema tienes que utilizar la libreria cstdlib y para ahorrarte esta libreria y la llamada al sistema sustituye el system("pause") por getchar().

Salu2
« Última modificación: 1 Julio 2011, 16:24 pm por Dark Invader » En línea

peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: duda c++
« Respuesta #4 en: 1 Julio 2011, 16:37 pm »

lo que quiero acer es... por ejemplo pongo por escrito "milmasmil" i me sale el resultado... pero no quiero un porgrama que haga los calculos automaticamente (eso ya lo tengo), lo que quiero es programar yo los calculos uno por uno.

por eso preguntaba lo de poner envez de numeros en las opciones, poner una palabra o varias palabras

i como no se mucho de programar en c++...
En línea

Dark Invader

Desconectado Desconectado

Mensajes: 111


Lucha hasta el final para conseguir tu objetivo.


Ver Perfil
Re: duda c++
« Respuesta #5 en: 1 Julio 2011, 17:39 pm »

Estoy dormido  :xD

Mira a ver si es esto lo que buscas,porque si es escribir una frase y transformarla en una ecuacion estamos listos:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main (void){
  4.    int a,b,c,i;
  5.    char cadena1[40]="milmasmil";
  6.    char cadena2[50];
  7.    char cadena3[40];
  8.    printf("escriba la operacion:  ");
  9.    gets(cadena1);
  10.    i= strcmp(cadena1,"milmasmil");
  11.    if (i==0){
  12.                                    printf("el resultado es 2000");
  13.                                    }
  14.                                    getchar();
  15.                                    return 0;
  16.                                    }
  17.  
En línea

peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: duda c++
« Respuesta #6 en: 1 Julio 2011, 18:20 pm »

me sirve solo para una operacion... pero io lo que quiero es que pueda dar opcion a otras operaciones tambien... tanto a milmasmil como a dosmilmasdosmil i asi asta el infinito i mas alla

por eso puse el codigo al principio por que en ese codigo (el que ice io) puedo elegir a mas operaciones... lo malo es que las operaciones que elijo estan en numeros... por ejemplo si elijo el numero 1 tengo el resultado de la operacion 1, si elijo el 2 para la operacion 2 i asi asta el final...

el codigo que me as sugerido tiene el problema que no puedo elegir entre varias opciones i no se como juntarlos por que los dos tienen una funcion diferente pero si se juntaran daria un resultado excelente...

pero aun asi... gracias por el codigo
En línea

Dark Invader

Desconectado Desconectado

Mensajes: 111


Lucha hasta el final para conseguir tu objetivo.


Ver Perfil
Re: duda c++
« Respuesta #7 en: 1 Julio 2011, 18:53 pm »

Ahhh que el codigo para las operaciones los tienes hechos...Solo quieres una opcion para saber que operacion hacer ¿no?.


Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int c;
  5. char palabra [40];
  6.  
  7. printf("escriba la frase para la operacion");
  8.  
  9. gets(palabra);
  10.  
  11.  
  12. printf("elija una opcion,1/2/3: ");
  13. scanf("%d",&c);
  14. switch(c){
  15. case 1:
  16.     //haz esta operacion.
  17.     break;
  18.     case 2:
  19.          //haz esto;
  20.          break;
  21.          case 3:
  22.               //haz lo otro;
  23.               break;
  24.               default:
  25.                       printf("esa opcion no es valida");
  26.                       break;
  27.                       }
  28.                       getchar();
  29. return 0;
  30. }
  31.  

Mira a ver  :xD Esto haria una serie de opciones,si es 1 haz esto,si es 2 haz lo otro...

Salu2
En línea

peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: duda c++
« Respuesta #8 en: 1 Julio 2011, 20:22 pm »

algo me falla...

ai donde as puesto tu "haz esta operacion" io e puesto el codigo
Código:
int main (void){
    int a,b,c,i;
    char cadena1[40]="milmasmil";
    char cadena2[50];
    char cadena3[40];
    printf("escriba la operacion:  ");
    gets(cadena1);
    i= strcmp(cadena1,"milmasmil");
    if (i==0){
                                    printf("el resultado es 2000");
                                    }
                                    getchar();
                                    return 0;
                                    }

pero al ejecutarlo no se que pasa que cuando pongo la operacion i luego enter se me cierra...
En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: duda c++
« Respuesta #9 en: 1 Julio 2011, 20:55 pm »

Si insertas este código tal y como lo escribiste, dentro del de Dark Invader, no puede ser que te no te dé errores. Te lo dijeron en otros posts: léete un buen libro.

http://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.html
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,752 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines