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

 

 


Tema destacado:


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

Desconectado Desconectado

Mensajes: 17


Ver Perfil
ayuda con ejercicio sencillo
« en: 30 Octubre 2010, 02:28 am »

he hecho un ejercicio que lee una frase y luego te pide un caracter que comprueba en que posiciones de la frase esta (si esta en la frase). luego te pregunta si quieres buscar otro caracter diferente..

tengo un problema, y es que cuando el usuario escribe mas de un caracter por error, los distintos scanf leen caracter por caracter todos los que se introdujeron (ni siquiera poniendo \n lo solucione)
la unica solucion que se me ocurrre usando scanf es usar fflush.. pero no me dejan usar esa funcion.

que cosas cambiariais para que funcionase mejor o que le quiariais / añadiriais???

gracias!

Código:

#include <stdio.h>
#include <stdlib.h>
#define MAX_LONG 100

void main()
{

char c[MAX_LONG], cb, c2[MAX_LONG], cond, encont; int i;

printf("Introduce una frase:\n\n");
fgets(c,99,stdin);

do
{

cond = 'N';
printf("\nIntroduce caracter a buscar: ");
scanf("\n%c",&cb);

for(i=0, encont = 'N';(i<MAX_LONG) && (c[i] !='\0');i++)
{
if (c[i] == cb) {c2[i] = 'V'; encont = 'S';}
else {c2[i] = 'F';}
}

if (encont == 'S')
printf("Se ha encontrado el caracter buscado (%c) en las posiciones de la cadena: ", cb);
else
printf("No se ha encontrado el caracter buscado (%c)", cb);

for(i=0;(i<MAX_LONG) && (c[i] != '\0');i++) {if (c2[i] == 'V') printf("%d, ", i);}


printf("\n\nDesea buscar otro caracter??(Contesta S o N): ");
scanf("\n%c", &cond);

}while((cond == 'S')||(cond == 's'));



printf("\n");
system("pause");
}



En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: ayuda con ejercicio sencillo
« Respuesta #1 en: 30 Octubre 2010, 03:30 am »

master
yo estoy al pedo y lo hice asi
Código:
#include <stdio.h>
#include <string.h>
main () {
     char frase[100],ca[2],opcion[1];
     int w,x,y,z=0;
     printf("escribi tu frase: ");
     gets(frase);
     volver:
     printf("\ncaracter a buscar: ");
     gets(ca);
     w=strlen(ca)-1;
                     if (w>=1) {
                     printf("se excedio el numero de caracteres a buscar...");
                     goto volver;
                                 }
     y=strlen(frase)-1;
     for (x=0;x<=y;x++){
         if (frase[x]==ca[0]){
                              printf("\nel caracter fue encontrado en la posicion %d\n",x+1);
                              z++;
                             }
         }
         if (z == 0) { printf("\nel caracter no fue encontrado\n"); }
         printf("\n\ndesea buscar otro caracter S/N: ");
         gets(opcion);
         if((opcion[0]=='s') || (opcion[0]=='S')) goto volver;
         printf("\npresione una tecla para salir ");
         getchar();
         }
no uso funciones , por que no se :P es que solo ley muy poco xD
y uso goto , capas te sirve para darte una idea
saludos


En línea

Fer995

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: ayuda con ejercicio sencillo
« Respuesta #2 en: 30 Octubre 2010, 16:21 pm »

gracias por tu ayuda!

no se me ocurrio usar strlen para ver la longitud!! muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Ejercicio sencillo en C
Programación C/C++
Torino10 7 4,298 Último mensaje 25 Abril 2012, 18:44 pm
por Torino10
ejercicio sencillo con PILAS
Programación C/C++
indict 2 2,097 Último mensaje 10 Julio 2013, 19:15 pm
por indict
Ayuda con Código Sencillo
Java
LaLakers94 5 3,104 Último mensaje 9 Noviembre 2013, 21:00 pm
por Mitsu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines