| |||
cadena de Texto Hola amigos un gran saludo tengo una consulta saben que soy un poco novato en lenguaje c, mi pregunta es la siguiente si incluyo por ejemplo una cadena de caracteres con el comando printf("Por Favor Incluya Su Nombre y Apellido"); y luego aceptas la instruccion con el comando scanf("%d",&nombre); porque cuando incluyo el nombre y apellido solo me acepta el mismo si es pegado sin espacio por ejemplo: richarjose en cambio si lo coloco de manera correcta como es richar jose, este me brinca un campo de por medio, mi pregunta es cual es el comando que debo colocar para ingresar richar jose ( con espacios intercalados como debe de ser ) Mil gracias por su colaboracion prestada. |
| |||
Respuesta: cadena de Texto scanf acaba al encontrar el espacio utiliza fgets()
Código:
printf("Por Favor Incluya Su Nombre y Apellido\n"); char nombre[20]; fgets(nombre, sizeof nombre, stdin); printf(nombre); |
| |||
Respuesta: cadena de Texto |
| |||
Respuesta: cadena de Texto En realidad no es que scanf siempre termine cuando encuentra un espacio en blanco, mas bien, scanf lee la información de la entrada estandar ( el teclado) con cierto formato que TÚ defines. La forma más común en la que se leen cadenas con scanf es:
Código C:
Ver original Hay que tomar en cuenta que las cadenas (arreglos de caracteres o apuntadores de tipo caracter) por si mismas ya son una dirección de memoria, por lo que no necesitan del ampersand a la hora de utilizarlos en scanf. Volviendo al tema. Como decía, scanf lee información con el formato que tu le indiques, asi que para que lea espacios y demás puedes hacerlo de la siguiente forma.
Código C:
Ver original Con esto le inficas a scanf que lea TODO exepto el salto de línea. Espero te sea de ayuda, Salu2 |
Etiquetas: |