Foro de elhacker.net

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
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char palabra[]="Murcielago";
  5.  
  6. int main(){
  7.    int a;
  8.    printf("|      %s      | \n",palabra);
  9.    printf("Que letra quiere seleccionar: ");
  10.    scanf("%d",&a);
  11.    fflush(stdin);  
  12.    printf("%c",palabra[a-1]);
  13.    getchar();
  14.    fflush(stdin);
  15.    return 0;
  16. }
  17.  
  18.  


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:
Código:
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
Código:
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:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main (int argc, char *argv [])
  5. {
  6. printf ("Code 0.1 : Sagrini 2011 : elhacker.NET\n");
  7. if (argc != 3)
  8. {
  9. printf ("[!!!] Use: %s <word> <number>\n\n", argv [0]);
  10. return 1;
  11. }
  12.  
  13. if (atoi (argv [2]) > strlen (argv [1]))
  14. {
  15. printf ("[!!!] Number %d is too long.\n\n", atoi (argv [2]));
  16. return 1;
  17. }
  18.  
  19. printf ("Leter number %d of %s: %c.\n\n", atoi (argv [2]), argv [1], argv [1][atoi (argv [2])-1]);
  20. return 0;
  21. }
  22.  
Código:
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
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...