En el lenguaje de programación C, la manipulación de cadenas y el manejo de la entrada y salida son temas fundamentales que suelen ser evaluados en exámenes universitarios. A continuación, exploramos en detalle algunas funciones clave: fgets, strlen, stdin, y otras relacionadas que todo estudiante debe dominar.
1. fgets: Lectura de Cadenas desde la Entrada
La función fgets es una de las formas recomendadas para leer cadenas de caracteres en C, especialmente cuando se desea incluir espacios en la entrada. A diferencia de scanf, que no puede capturar espacios en blanco dentro de la cadena, fgets permite leer una línea completa.
Sintaxis de fgets:
fgets(char *str, int n, FILE *stream);
str: puntero al array donde se almacenará la cadena leída.n: tamaño máximo de la cadena a leer.stream: origen de los datos, dondestdinindica la entrada estándar (teclado).
Ejemplo de uso:
#include <stdio.h>
int main() {
char frase[100];
printf("Introduce una frase: ");
fgets(frase, 100, stdin); // Lee hasta 99 caracteres desde la entrada estándar
printf("La frase introducida es: %s\n", frase);
return 0;
}
Ventajas de fgets:
- Lee toda la línea de entrada, incluyendo espacios en blanco.
- Evita desbordamientos de buffer, ya que se especifica un límite de caracteres.
2. strlen: Medición de la Longitud de una Cadena
La función strlen calcula la longitud de una cadena, excluyendo el carácter de fin de cadena \0. Es útil para determinar el tamaño real de una cadena ingresada por el usuario o procesada en el programa.
Sintaxis de strlen:
size_t strlen(const char *str);
str: puntero a la cadena cuyo tamaño se desea calcular.
Ejemplo de uso:
#include <stdio.h>
#include <string.h>
int main() {
char frase[100];
printf("Introduce una frase: ");
fgets(frase, 100, stdin);
// Eliminamos el salto de línea de fgets
frase[strcspn(frase, "\n")] = '\0';
printf("La longitud de la frase es: %lu\n", strlen(frase));
return 0;
}
Nota: strlen es especialmente útil para manipular cadenas dinámicamente en programas complejos, y es una función que seguramente encontrarás en un examen de C.
3. stdin: Entrada Estándar en C
El stdin es un flujo estándar de entrada que, por defecto, está conectado al teclado del usuario. En combinación con funciones como fgets, permite leer datos directamente desde el usuario.
Ejemplo de stdin con fgets:
#include <stdio.h>
int main() {
char nombre[50];
printf("Introduce tu nombre: ");
fgets(nombre, 50, stdin); // Lee el nombre desde el teclado
printf("Hola, %s", nombre);
return 0;
}
Al especificar stdin, fgets sabe que debe leer de la entrada estándar, permitiendo al usuario introducir la información necesaria.
4. strcspn: Eliminación de Caracteres Innecesarios
La función strcspn se usa comúnmente para eliminar el salto de línea \n que fgets incluye al final de la cadena, lo que puede ser molesto al realizar otras operaciones de cadena.
Sintaxis de strcspn:
size_t strcspn(const char *str1, const char *str2);
str1: cadena en la que se realiza la búsqueda.str2: cadena con caracteres que se quieren localizar.
Ejemplo de uso con fgets:
#include <stdio.h>
#include <string.h>
int main() {
char frase[100];
printf("Introduce una frase: ");
fgets(frase, 100, stdin);
// Reemplaza el salto de línea con el carácter de fin de cadena
frase[strcspn(frase, "\n")] = '\0';
printf("Frase sin salto de línea: %s\n", frase);
return 0;
}
Ventajas de strcspn:
- Facilita la eliminación de caracteres específicos de una cadena, como
\nal final de una entrada defgets.
5. scanf vs. fgets: ¿Cuál Usar?
Aunque scanf se usa comúnmente para capturar datos, tiene limitaciones con las cadenas. No puede capturar espacios en blanco, lo que hace que fgets sea preferible cuando se necesita leer líneas completas.
Ejemplo de scanf con %s:
#include <stdio.h>
int main() {
char palabra[50];
printf("Introduce una palabra: ");
scanf("%s", palabra);
printf("La palabra es: %s\n", palabra);
return 0;
}
Comparación:
scanfes útil para capturar una sola palabra.fgetses ideal para líneas completas o frases.
6. Resumen de Funciones Clave en Exámenes de C
Aquí tienes una tabla rápida de funciones y sus usos, para facilitar la preparación de exámenes:
| Función | Descripción |
|---|---|
fgets | Lee una línea de texto, ideal para capturar frases completas. |
strlen | Calcula la longitud de una cadena, excluyendo \0. |
strcspn | Busca caracteres en otra cadena (útil para eliminar \n). |
stdin | Flujo estándar de entrada para leer desde el teclado. |
scanf | Lee datos formateados, no ideal para capturar frases completas. |
Conclusión
El dominio de estas funciones es esencial para cualquier estudiante de C. Asegúrate de practicar su uso y diferencias en tus programas, y de entender los detalles como la eliminación de caracteres adicionales en la entrada. Con esta comprensión, estarás mejor preparado para responder cualquier pregunta en tu examen universitario de programación en C.
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- Propuestas de actividades avanzadas con XML, DTD, XPath y XSLT
- Apuntes extensos de XML y XSLT
- El momento IDEAL para impulsar tu FORMACIÓN y alcanzar tus Metas Académicas: LAS NAVIDADES.

- 20 ejercicios de funciones avanzadas en Python (al estilo de Ackermann)
- Cómo guardar una página web completa en MySQL con PHP (urlencode, BLOB y otras técnicas)
- 60 ejercicios de funciones recursivas en Python para la carrera de Informática
- SIMULACRO 2 – FP Programación de Videojuegos
- Simulacro de examen – FP Programación de Videojuegos
- ALERTA METEOROLÓGICA

ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- Propuestas de actividades avanzadas con XML, DTD, XPath y XSLT
- Apuntes extensos de XML y XSLT
- El momento IDEAL para impulsar tu FORMACIÓN y alcanzar tus Metas Académicas: LAS NAVIDADES.

- 20 ejercicios de funciones avanzadas en Python (al estilo de Ackermann)
- Cómo guardar una página web completa en MySQL con PHP (urlencode, BLOB y otras técnicas)
- 60 ejercicios de funciones recursivas en Python para la carrera de Informática
- SIMULACRO 2 – FP Programación de Videojuegos
- Simulacro de examen – FP Programación de Videojuegos
- ALERTA METEOROLÓGICA

ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido





































































































































































































































































INFORMACIÓN SOBRE 







Comments are closed