Librerías
Standard Input/Output:
#include <stdio.h>
printf: Print Formatted
int printf(const char *restrict format, ...);
Imprime texto formateado en la salida estándar (stdout).
El primer argumento es una cadena de formato que puede contener especificadores como %d, %f, %s, etc.
Devuelve el número de caracteres escritos o un valor negativo si ocurre un error.
scanf: Scan Formatted
int scanf(const char *restrict format, ...);
Lee datos formateados desde la entrada estándar (stdin).
La cadena de formato indica cómo interpretar los datos ingresados
(por ejemplo %d, %f, %s, etc.).
Devuelve el número de elementos leídos correctamente o EOF
si ocurre un error o se alcanza el fin de archivo.
fflush: File Flush
int fflush(FILE *stream);
Vacía el buffer de un flujo de salida, forzando la escritura inmdiata
de los datos pendientes. Si stream es NULL,
se vacían todos los flujos de salida abiertos. Devuelve 0
en caso de éxito o EOF si ocurre un error.
En el curso usamos: fflush(stdin).
Pero no es estándar en C.
El estándar solo garantiza el uso de fflush para flujos de salida.
En algunos compiladores (como MSVC o ciertos entornos de Windows) funciona
con stdin, pero no es portable.
El compilador usado para la construcción de este repositorio MinGW64,
permite su uso.
gets: Get String
char *gets(char *str);
Lee una línea desde stdin hasta encontrar un salto de línea o EOF.
No verifica el tamaño del buffer, por lo que puede provocar buffer overflow.
Fue declarada obsoleta en C99 y eliminada en C11. Se recomienda usar fgets().
fgets: File Get String
char *fgets(char *restrict str, int count, FILE *restrict stream);
Lee caracteres desde un archivo o desde stdin hasta encontrar
un salto de línea (\n), alcanzar count - 1 caracteres
o llegar al final del archivo (EOF). El salto de línea se
almacena en el buffer si hay espacio y la cadena siempre termina en '\0'.
getchar: Get Character
int getchar(void);
Lee un carácter desde stdin. Devuelve el carácter leído
convertido a int o EOF si ocurre un error
o se alcanza el final del archivo.
fopen: File Open
FILE *fopen(const char *restrict filename, const char *restrict mode);
Abre un archivo y devuelve un puntero a FILE asociado al flujo.
El parámetro mode indica el modo de apertura (por ejemplo "r",
"w", "a", etc.).
Devuelve NULL si el archivo no puede abrirse.
fclose: File Close
int fclose(FILE *stream);
Cierra un archivo asociado a un flujo FILE.
Vacía los buffers pendientes y libera los recursos del archivo.
Devuelve 0 si se cierra correctamente
o EOF si ocurre un error.
fputc: File Put Character
int fputc(int ch, FILE *stream);
Escribe un carácter en un archivo o flujo. El valor de ch
se convierte a unsigned char y se escribe en stream.
Devuelve el carácter escrito o EOF si ocurre un error.
fgetc: File Get Character
int fgetc(FILE *stream);
Lee un carácter de un archivo o flujo. Devuelve el carácter leído
convertido a unsigned char y promovido a int,
o EOF si ocurre un error o se alcanza el final del archivo.
feof: File End Of File
int feof(FILE *stream);
Indica si se llegó al final del archivo asociado al flujo.
Devuelve un valor distinto de 0 si el indicador de
fin de archivo está activo, o 0 en caso contrario.
ferror: File Error
int ferror(FILE *stream);
Comprueba si ocurrió un error en un flujo de archivo.
Devuelve un valor distinto de 0 si el indicador
de error está activo, o 0 si no hay error.
putchar: Put Character
int putchar(int char);
Escribe un carácter en la salida estándar (stdout).
El valor de ch se convierte a unsigned char
antes de escribirse.
Devuelve el carácter escrito o EOF si ocurre un error.
puts: Put String
int puts(const char *str);
Escribe una cadena en la salida estándar (stdout)
seguida de un salto de línea (\n).
Devuelve un valor no negativo en caso de éxito o EOF
si ocurre un error.
fputs: File Put String
int fputs(const char *restrict str, FILE *restrict stream);
Escribe una cadena en un archivo o flujo. A diferencia de puts,
no agrega un salto de línea al final. Devuelve un valor no negativo en caso de éxito
o EOF si ocurre un error.
fprintf: File Print Formatted
int fprintf(FILE *restrict stream, const char *restrict format, ...);
Imprime texto formateado en un archivo o flujo. La cadena format
puede contener especificadores como %d, %f, %s, etc.
Devuelve el número de caracteres escritos o un valor negativo si ocurre un error.
fscanf: File Scan Formatted
int fscanf(FILE *restrict stream, const char *restrict format, ...);
Lee datos formateados desde un archivo o flujo. La cadena format
indica cómo interpretar los datos (por ejemplo %d, %f, %s, etc.).
Devuelve el número de elementos leídos correctamente o EOF
si ocurre un error o se alcanza el final del archivo.
sscanf: String Scan Formatted
int sscanf(const char *restrict buffer, const char *restrict format, ...);
Lee datos formateados desde una cadena. a cadena format indica
cómo interpretar los datos (por ejemplo %d, %f, %s, etc.).
Devuelve el número de elementos leídos correctamente.
fwrite: File Write
size_t fwrite(const void *restrict buffer, size_t size, size_t count, FILE *restrict stream);
Escribe bloques de datos binarios en un archivo. Escribe count elementos
de tamaño size desde el buffer.
Devuelve la cantidad de elementos escritos correctamente.
fread: File Read
size_t fread(void *restrict buffer, size_t size, size_t count, FILE *restrict stream);
Lee bloques de datos binarios desde un archivo hacia buffer.
Lee hasta count elementos de tamaño size.
Devuelve la cantidad de elementos leídos correctamente.
ftell: File Tell
long ftell(FILE *stream);
Devuelve la posición actual del indicador de lectura/escritura
dentro del archivo.
Devuelve -1L si ocurre un error.
fseek:File Seek
int fseek(FILE *stream, long offset, int origin);
Mueve el indicador de posición dentro del archivo.
origin puede ser SEEK_SET, SEEK_CUR
o SEEK_END.
Devuelve 0 si tiene éxito.
rewind: Rewind
void rewind(FILE *stream);
Mueve el indicador de posición al inicio del archivo y limpia el indicador de error del flujo.
rewind()remove: Remove File
int remove(const char *pathname);
Elimina un archivo del sistema.
Devuelve 0 si la operación tiene éxito.
Console Input/Output
#include <conio.h>
getche: Get Character Echo
int getche(void);
Lee un carácter desde el teclado y lo muestra inmediatamente en pantalla (con eco). Devuelve el carácter leído. Función no estándar.
getche()clrscr: Clear Screen
void clrscr(void);
Limpia la pantalla de la consola y coloca el cursor en la
esquina superior izquierda.
Función no estándar.
Se puede reemplazar con system("cls") en Windows,
o con system("clear") en Linux/Unix. Que pertenecen al estándar.
getch: Get Character
int getch(void);
Lee un carácter desde el teclado sin mostrarlo en pantalla (sin eco). Devuelve el carácter leído. Función no estándar.
getch()Standard Definitions
#include <stddef.h>
sizeof(): Size Of
sizeof(type);
sizeof expression;
Operador que devuelve el tamaño en bytes de un tipo de dato
o de una expresión.
El resultado es de tipo size_t.
Standard Library
#include <stdlib.h>
system(): System Command
int system(const char *command);
Ejecuta un comando del sistema operativo mediante el intérprete de comandos. Devuelve un valor que indica el resultado de la ejecución del comando.
system()rand: Random
int rand();
Genera un número pseudoaleatorio entre 0 y RAND_MAX.
exit: Exit Program
void exit(int exit_code);
Termina la ejecución del programa inmediatamente y devuelve
el código exit_code al sistema operativo.
malloc: Memory allocation
void *malloc(size_t size);
Reserva dinámicamente un bloque de memoria de tamaño size bytes.
Devuelve un puntero al bloque asignado o NULL si falla.
calloc: Contiguous Allocation
void *calloc(size_t num, size_t size);
Reserva memoria para num elementos de tamaño size
e inicializa todos los bytes en cero.
Devuelve un puntero al bloque asignado o NULL.
realloc: Re-Allocation
void *realloc(void *ptr, size_t new_size);
Cambia el tamaño del bloque de memoria apuntado por ptr
a new_size bytes.
Puede mover el bloque a otra dirección.
free: Free Memory
void free(void *ptr);
Libera un bloque de memoria previamente reservado con malloc,
calloc o realloc.
Mathematics
#include <math.h>
fmax: Floating-Point Maximum
double fmax(double x, double y);
Devuelve el mayor de dos valores en coma flotante.
fmax()pow: Power
double pow(double base, double exponent);
Calcula la potencia de base elevada a exponent.
sqrt: Square Root
double sqrt(double arg);
Calcula la raíz cuadrada de un número.
sqrt()atan2: Arc Tangent (2 arguments)
double atan2(double y, double x);
Calcula la arcotangente de y/x considerando
el cuadrante correcto.
cos: Cosine
double cos(double arg);
Calcula el coseno de un ángulo en radianes.
cos()sin: Sine
double sin(double arg);
Calcula el seno de un ángulo en radianes.
sin()String handling
#include <string.h>
strcspn: String Complement Span
size_t strcspn(const char *dest, const char *src);
Devuelve la longitud deñ segmento inicial de dest
que no contiene ninguno de los caracteres de src.
strcmp: String Compare
int strcmp(const char *lhs, const char *rhs);
Compara dos cadenas lexicográficamente.
Devuelve un valor menor que 0 si lhs es menor que rhs,
0 si son iguales, o mayor que 0 si lhs
es mayor que rhs.
strcpy: String Copy
char *strcpy(char* restric dest, const char* restrict src);
Copia la cadena src en dest, incluyendo
el carácter nulo '\0'.
Devuelve un puntero a dest.
Character Type
#include <ctype.h>
toupper: To Upper Case
int toupper(int ch);
Convierte un carácter a mayúsculas, si es una letra minúscula. Si no lo es, devuelve el carácter sin cambios.
toupper()