Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: nafhta en 26 Abril 2011, 05:14 AM

Título: Seleccionar una letra en una cadena de texto
Publicado por: nafhta en 26 Abril 2011, 05:14 AM
Buenas Quisiera saber como puedo seleccionar una letra determinada en una cadena de texto en C
por ej,

murcielago
y quiero seleccionar la letra numero 3 que seria la "r"
por favor en C

muchas gracias
Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: <<<-Basura->>> en 26 Abril 2011, 06:34 AM

#include <stdio.h>
#include <string.h>

char palabra[]="Murcielago";

int main(){
    int a;
    printf("|      %s      | \n",palabra);
    printf("Que letra quiere seleccionar: ");
    scanf("%d",&a);
    fflush(stdin);   
    printf("%c",palabra[a-1]);
    getchar();
    fflush(stdin);
    return 0;
}

Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: lluk en 26 Abril 2011, 14:45 PM
no entiendo porque pones la función:

fflush(stdin);


con todo menos eso ya tendria que funcionar no?
Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: satu en 26 Abril 2011, 17:31 PM
Hola

Está desaconsejado utilizar

fflush(stdin);

porque puede dar problemas, al igual que las variables globales. Si no lo pone funciona aunque es mejor no ponerlo.

https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html (https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html)

Saludos
Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: lluk en 26 Abril 2011, 17:58 PM
a ok, esque por lo que ha pedido ya sin eso hace los mismo no?
Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: Garfield07 en 26 Abril 2011, 18:28 PM
En definitiva:

#include <stdio.h>
#include <string.h>

int main (int argc, char *argv [])
{
printf ("Code 0.1 : Sagrini 2011 : elhacker.NET\n");
if (argc != 3)
{
printf ("[!!!] Use: %s <word> <number>\n\n", argv [0]);
return 1;
}

if (atoi (argv [2]) > strlen (argv [1]))
{
printf ("[!!!] Number %d is too long.\n\n", atoi (argv [2]));
return 1;
}

printf ("Leter number %d of %s: %c.\n\n", atoi (argv [2]), argv [1], argv [1][atoi (argv [2])-1]);
return 0;
}


sagrini@sagrini:~/Escritorio$ gcc -o code code.c
sagrini@sagrini:~/Escritorio$ ./code
code 0.1 : Sagrini 2011 : elhacker.NET
[!!!] Use: ./code <word> <number>

sagrini@sagrini:~/Escritorio$ ./code word
code 0.1 : Sagrini 2011 : elhacker.NET
[!!!] Use: ./code <word> <number>

sagrini@sagrini:~/Escritorio$ ./code word 7
code 0.1 : Sagrini 2011 : elhacker.NET
[!!!] Number 7 is too long.

sagrini@sagrini:~/Escritorio$ ./code word 2
code 0.1 : Sagrini 2011 : elhacker.NET
Leter number 2 of word: o.

sagrini@sagrini:~/Escritorio$


Un saludo. Sagrini
Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: <<<-Basura->>> en 26 Abril 2011, 23:26 PM
fflush(stdin);

este lo uso para liberar el buffer, cada vez que pidas al usario algo en el teclado, puede que algo quede hay sobrando entonces con esa funcion se libera
Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: xassiz~ en 27 Abril 2011, 00:02 AM
Cita de: rasielunderwar en 26 Abril 2011, 23:26 PM
fflush(stdin);

este lo uso para liberar el buffer, cada vez que pidas al usario algo en el teclado, puede que algo quede hay sobrando entonces con esa funcion se libera
http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html)

Revisa el punto 2.

Saludos.
Título: Re: Seleccionar una letra en una cadena de texto
Publicado por: <<<-Basura->>> en 27 Abril 2011, 07:41 AM
Me gusta la Solucion ;) Suerte...