leer frase con scanf

Iniciado por Fer995, 28 Octubre 2010, 20:03 PM

0 Miembros y 1 Visitante están viendo este tema.

Fer995

como puedo hacer para leer una frase introducida en la consola??

probe con scanf pero solo lee hasta cuando hay un espacio!

muchas gracias!

ace332

Utiliza fgets:


char cadena[100];
fgets(cadena,100,stdin);


Revisa la documentación de la función fgets.

Un Saludo

Fer995

muchas gracias!

no hay ningun modo de hacerlo con scanf??

klaussius

Cita de: Fer995 en 28 Octubre 2010, 23:32 PM
muchas gracias!

no hay ningun modo de hacerlo con scanf??

No, no hay manera de hacerlo así, debes utilizar la biblioteca <string.h>... te dejo un trozo de código que me he encontrado por ahí:


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

char completo [80];

char nombre[32] = "Guybrush";
char apellidos [32] = "Threep Wood";

int main(void)
{
  /* Construye el nombre completo */
  strcpy ( completo, nombre );
  strcat ( completo, " ");  
  strcat ( completo, apellidos );

  /* Muestro el nombre al usuario */ 
  printf ( "El nombre completo es %s\n", completo );

  /* Pausa hasta que el usuario pulse INTRO */
  fflush(stdin);
  printf ("Pulse INTRO para finalizar...");
  getchar();
}
Hazlo o no lo hagas, pero no lo intentes. (Yoda)

taul

char frase[1000];

printf("introduce tu frase: ");
scanf("%s",frase);

xassiz~

Cita de: taul en 29 Octubre 2010, 23:31 PM
char frase[1000];

printf("introduce tu frase: ");
scanf("%s",frase);
Incorrecto, os recomiendo que leais esto.

Saludos !

Darioxhcx

para no poner una palabra x una yo hago esto
#include <stdio.h>
#include <string.h>
main () {
     char frase[100];
     int x,y;
     printf("escribi tu frase: ");
     gets(frase);
     y=strlen(frase)-1;
     for (x=0;x<=y;x++){
         printf("%c",frase[x]);
         }
         getchar();
         }

no se si esta bien o estoy pasando por alto algunos tips como los que escribio litle hace tiempo , pero buee :P

Fer995

gracias por vuestras respuestas me han dado algunas ideas!

3mp3z@ndo

También podrías hacerlo de esta forma:
#include <stdio.h>

int main(){

  char frase[100];
  printf( "Escribe una frase:\n");
  printf( "\nHas escrito: \%s\n", gets(frase) );

  getch();
  return 0;
}


Saludos

Fer995

Cita de: 3mp3z@ndo en 30 Octubre 2010, 02:49 AM
También podrías hacerlo de esta forma:
#include <stdio.h>

int main(){

  char frase[100];
  printf( "Escribe una frase:\n");
  printf( "\nHas escrito: [b]\[/b]%s\n", gets(frase) );

  getch();
  return 0;
}


Saludos

que es lo que hace la barra delante del %s??