Você está na página 1de 47

UNIVERSIDAD TECNOLGICA DE PANAM

FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES

PROGRAMACION APLICADA I

BIBLIOTECA ESTNDAR DEL C

PROF. Dra. ADDYS DE LAM

INTEGRANTES

ACEVEDO, LAUREN

8-845-560

MARTINEZ, MAURICIO

8-841-472

PAU, RICARDO
RODRIGUEZ, DAN

8-845-1130

VIVAR, LUIS E.

8-857-210

GRUPO: 1-IL-122

20 DE ABRIL DE 2011

Biblioteca Estndar del C

ndice

Introduccin y objetivos 3
La biblioteca estndar del C..

La librera Stdio.h 8
La librera Conio.h. 14
La librera Ctype.h. 16
La librera Stdlib.h 21
La librera String.h.

26

La librera Time.h..

30

La librera Math.h.

41

Programa Ejemplo . 43
Conclusiones 46
Bibliografa y Web-grafa..

47

2011

Biblioteca Estndar del C

2011

Introduccin
En el mundo actual, las tecnologas avanzan de forma impresionante a
cada segundo, y nosotros somos los que vamos a seguir con este avance.
Empezando el curso de nuestras vidas y fundando las bases de nuestra
informacin en el tema de la programacin as como la lgica que utilizaremos
en trabajos futuros tendemos el gusto de presentarles la presente investigacin
sobre La Biblioteca Estndar del C, la cual pasaremos a definir posteriormente.
Este proyecto no solo presenta aspectos del tema sino que tambin, profundiza
en sus subdivisiones y mtodos que estn poseen, dando as explicaciones,
trucos y ejemplos de los mtodos propuestos.

Objetivos
Entre los objetivos tenemos:

Conocer que es la biblioteca estndar de C


Determinar cules son las libreras que se encuentran dentro de esta.
Mostrar todas las funciones que nos presenta el C, con sus respectivas
funciones.

Biblioteca Estndar del C

2011

La Biblioteca Estndar de C
La biblioteca estndar de C es una recopilacin de ficheros cabecera y
bibliotecas con rutinas, estandarizadas por un comit de la Organizacin
Internacional para la Estandarizacin (ISO), que implementan operaciones
comunes, tales como las de entrada y salida o el manejo de cadenas. A
diferencia de otros lenguajes como COBOL, FORTRAN, o PL/I, C no incluye
palabras clave para estas tareas, por lo que prcticamente todo programa
implementado en C se basa en la biblioteca estndar para funcionar.
Diseo
El nombre y las caractersticas de cada funcin, el prototipo, as como la
definicin de algunos tipos de datos y macros, se encuentran en un fichero
denominado archivo de cabecera (con extensin ".h"), pero la implementacin
real de las funciones estn separadas en un archivo de la biblioteca. La
denominacin y el mbito de las cabeceras se han convertido en comunes,
pero la organizacin de las bibliotecas sigue siendo diversa, ya que stas
suelen distribuirse con cada compilador. Dado que los compiladores de C, a
menudo, ofrecen funcionalidades adicionales que no estn especificados en
el ANSI C, la biblioteca de un compilador no siempre es compatible con el
estndar ni con las bibliotecas de otros compiladores.
Calidad del diseo
Est demostrado que la mayor parte de la biblioteca estndar de C ha sido bien
diseada, aunque, se ha comprobado que algunas partes tambin son fuente
de errores; funciones para entrada de cadenas como gets() o scanf(),
producen desbordamientos de buffer, y muchas guas de programacin
recomiendan evitar su uso. La funcin strtok() presenta otra singularidad, est
diseada para ser utilizada como un analizador lxico rudimentario, pero
resulta difcil de utilizar adems de ser muy frgil.
El estndar ANSI
La biblioteca estndar de ANSI C consta de 24 ficheros cabecera que pueden
ser incluidos en un proyecto de programacin con una simple directiva. Cada
cabecera contiene la declaracin de una o ms funciones, tipos de
datos y macros.
En comparacin con otros lenguajes de programacin (como por ejemplo Java)
la biblioteca estndar es muy pequea, est proporciona un conjunto bsico de
funciones matemticas, de tratamiento de cadenas, conversiones de tipo y

Biblioteca Estndar del C

2011

entrada/salida por consola o por ficheros. No se incluyen, ni un conjunto de


tipos de datos contenedores bsicos (listas, pilas, colas, ...), ni herramientas
para crear una interfaz grfica de usuario (GUI), ni operaciones para trabajar en
red, no otras funcionalidades que un lenguaje como Java incorpora de manera
estndar. La principal ventaja del reducido tamao de la biblioteca estndar de
C es que construir un entorno de trabajo en ANSI C es muy fcil y, en
consecuencia, portar un programa en ANSI C de una plataforma a otra es
relativamente sencillo.
Se han desarrollado muchas otras bibliotecas para proporcionar una
funcionalidad equivalente a la de otros lenguajes de programacin. Por
ejemplo, el proyecto de desarrollo del entorno de escritorio de GNOME cre las
bibliotecas GTK+ y GLib con funcionalidades para desarrollar y trabajar con
interfaces grficas de usuario. La variedad de bibliotecas disponibles ha hecho
que, a lo largo de la historia, haya quedado demostrada la superioridad de
algunas de estas herramientas. El gran inconveniente es que a menudo no
funcionan especialmente bien en conjunto, normalmente son los propios
programadores familiarizados con las diferentes bibliotecas quienes consiguen
sacarles el mximo partido, aunque diferentes partes de ellas puedan estar
disponibles en cualquier plataforma.
La biblioteca estndar de C en C++
El lenguaje de programacin C++ incluye la funcionalidad de la biblioteca
estndar ANSI C, pero hace algunas modificaciones como cambiar los
nombres de los ficheros de cabecera, de <xxx.h> a <cxxx> (aunque los
nombres en estilo C, aun siendo obsoletos, siguen estando disponibles), y
ubican todos los identificadores dentro del namespace std.

Archivos de cabeceras de la biblioteca ANSI C


<assert.h>

Contiene la macro assert (asercin), utilizada para detectar


errores lgicos y otros tipos de fallos en la depuracin de un
programa.

<complex.h> Conjunto de funciones para manipular nmeros


complejos (nuevo en C99).

Biblioteca Estndar del C

2011

<ctype.h>

Contiene funciones para clasificar caracteres segn sus tipos o


para convertir entre maysculas y minsculas
independientemente del conjunto de
caracteres (tpicamenteASCII o alguna de sus extensiones).

<errno.h>

Para testar los cdigos de error devueltos por las funciones de


biblioteca.

<fenv.h>

Para controlar entornos en coma flotante (nuevo en C99).

<float.h>

Contiene la definicin de constantes que especifican ciertas


propiedades de la biblioteca de coma flotante, como la diferencia
mnima entre dos nmeros en coma flotante (_EPSOLON), el
nmero mximo de dgitos de precisin (_DIG), o el rango de
valores que se pueden representar (_MIN, _MAX).

<inttypes.h>

Para operaciones de conversin con precisin entre tipos


enteros (nuevo en C99).

<iso646.h>

Para utilizar los conjuntos de caracteres ISO 646 (nuevo en


NA1).

<limits.h>

Contiene la definicin de constantes que especifican ciertas


propiedades de los tipos enteros, como rango de valores que se
pueden representar (_MIN, _MAX).

<locale.h>

Para la funcin setlocale() y las constantes relacionadas. Se


utiliza para seleccionar el entorno local apropiado (configuracin
regional).

<math.h>

Contiene las funciones matemticas comunes.

<setjmp.h>

Declara las macros setjmp y longjmp para proporcionar saltos de


flujo de control de programa no locales.

<signal.h>

Para controlar algunas situaciones excepcionales como la


divisin por cero.

<stdarg.h>

posibilita el acceso a una cantidad variable de argumentos

Biblioteca Estndar del C

2011

pasados a una funcin.


<stdbool.h>

Para el tipo booleano (nuevo en C99).

<stdint.h>

Para definir varios tipos enteros (nuevo en C99).

<stddef.h>

Para definir varios tipos de macros de utilidad.

<stdio.h>

Proporciona el ncleo de las capacidades de entrada/salida del


lenguaje C (incluye la venerable funcin printf).

<stdlib.h>

Para realizar ciertas operaciones como conversin de tipos,


generacin de nmeros pseudo-aleatorios, gestin de memoria
dinmica, control de procesos, funciones de entorno, de
sealizacin (??), de ordenacin y bsqueda.

<string.h>

Para manipulacin de cadenas de caracteres.

<tgmath.h>

Contiene funcionalidades matemticas de tipo genrico (typegeneric) (nuevo en C99).

<time.h>

Para tratamiento y conversin entre formatos de fecha y hora.

<wchar.h>

Para manipular flujos de datos anchos y varias clases de


cadenas de caracteres anchos (2 o ms bytes por carcter),
necesario para soportar caracteres de diferentes idiomas (nuevo
en NA1).

<wctype.h>

Para clasificar caracteres anchos (nuevo en NA1).

Ahora profundizaremos en las siguientes libreras:

Biblioteca Estndar del C

2011

La librera stdio.h
La biblioteca <stdio.h>, cuyas siglas significan standard input-output header
(cabecera standar de entrada y salida), es la biblioteca estndar del lenguaje
de programacin C, el archivo de cabecera que contiene las definiciones
de macros, las constantes, las declaraciones de funciones y la definicin
de tipos usados por varias operaciones estndar de entrada y salida. Por
motivos de compatibilidad, el lenguaje de programacin C++ (derivado de C)
tambin tiene su propia implementacin de estas funciones, que son
declaradas con el archivo de cabecera cstdio.
Las funciones declaradas en stdio.h son sumamente populares. Los
programadores tienen que incluir el archivo de cabecera stdio.h dentro del
cdigo fuente para poder utilizar las funciones que estn declaradas. Aparte de
las funciones tambin encontramos variables y tipos de dato propios de la
biblioteca que se pasaran a definir a continuacin:

Funciones en la <stdio.h>
Las funciones declaradas en stdio.h pueden clasificarse en dos categoras:
funciones de manipulacin de ficheros y funciones de manipulacin de
entradas y salidas.
Las funciones de manipulacin de puntero que encontramos en la stdio.h
son:
Nombre
fclose

Descripcin
cierra un fichero a travs de su puntero

fopen,
freopen,

abre un fichero para lectura, para escritura/reescritura o para adicin

fdopen
remove

elimina un fichero

rename

cambia al fichero de nombre

Biblioteca Estndar del C

2011

rewind

La funcin rewind coloca el indicador de posicin de fichero para el stream


apuntado por stream al comienzo del fichero.

tmpfile

crea y abre un fichero temporal que es borrado cuando cerramos con la


funcin fclose()

Las funciones de manipulacin de datos de entrada y salida que


encontramos en esta biblioteca son cerca de 44 funciones representadas en la
siguiente tabla:
clearerr
fflush
fopen
fputs
fseek
getc
printf
remove
setbuf
tmpfile
vprintf

fclose
fgetc
formato
fread
fsetpos
getchar
putc
rename
setvbuf
tmpnam
vsprintf

feof
fgetpos
fprintf
freopen
ftell
gets
putchar
rewind
sprintf
ungetc

ferror
fgets
fputc
fscanf
fwrite
perror
puts
scanf
sscanf
vfprintf

Dentro de estas funciones se destacan las funciones: getchar, putc, putchar,


getc, gets, puts, fflush, scanf, printf, debido a que estn se usan con mayor
frecuencia en los programas en C.

getchar ( ): esta funcin se utiliza para leer solo un carcter introducido


por un dispositivo de entrada.
o Formato: Variable de carcter = getchar ( );
getc( ): devuelve un carcter desde un fichero.
putchar( ): esta funcin se utiliza para visualizar un carcter al
dispositivo de salida.
o Formato: putchar(variable de carcter);
putc( ) : devuelve un carcter de un fichero.
scanf( ): se utiliza para introducir cualquier combinacin de datos
procedentes del dispositivo (valores numricos, cadenas de caracteres o
caracteres sueltos).
o Formato: scanf(cadena de control, arg1, arg2, , arg n )
printf( ): se utiliza para visualizar cualquier combinacin de datos
(valores numricos, cadenas de caracteres o caracteres sueltos).
o Formato: printf(cadena de control, arg1,arg2,, arg n);

Biblioteca Estndar del C

2011

gets( ): facilitan la transferencia de cadenas de caracteres, esta funcin


se utiliza para introducir una cadena de caracteres.
o Formato: gets(cadena de caracteres);
puts( ): facilitan la transferencia de cadenas de caracteres, esta funcin
se utiliza para mostrar una cadena de caracteres.
o Formato: puts(cadena de caracteres);
fflush( ): Sirve para vaciar el buffer de escritura del archivo especificado.

Constantes predeterminadas en la <stdio.h>


Las constantes definidas en el fichero cabecera stdio.h son:
Nombre

Descripcin

EOF

entero negativo (int) usado para indicar "fin de fichero"

BUFSIZ

entero que indica el tamao del buffer utilizado por la


funcin setbuf()

FILENAME_MAX tamao mximo de la cadena de caracteres que contienen


el nombre de un fichero para ser abierto
FOPEN_MAX

Nmero mximo de ficheros que pueden estar abiertos


simultneamente

_IOFBF

abreviatura de input/output fully buffered (buffer


entrada/salida totalmente lleno); es un entero que se puede
pasar como parmetro de la funcin setvbuf() para
requerirbloqueo del buffer en la entrada y salida
del stream abierto

_IOLBF

abreviatura de input/output line buffered (...??); es un


entero que se puede pasar como parametro a la
funcin setvbuf() para requerir line buffered (??) en la
entrada y salida del stream abierto

_IONBF

abreviatura de "input/output not buffered" (entrada/salida


sin buffer); es un entero que se puede pasar como
parametro a la funcin setvbuf() para requerir que la
entrada salida del stream abierto funcione sin buffer

10

Biblioteca Estndar del C

2011

L_tmpnam

tamao de la cadena de caractres con la longitud suficiente


para almacenar un nombre de fichero temporal generado
por la funcin tmpnam()

NULL

macro que representa la constante puntero nulo; representa


un valor de puntero que no apunta a ninguna direccin
vlida de objeto alguno en memoria

SEEK_CUR

entero que se puede pasar como parmetro a la


funcin fseek() para indicar posicionamiento relativo a la
posicin actual del fichero

SEEK_END

entero que se puede pasar como parmetro a la


funcin fseek() para indicar posicionamiento relativo al final
del fichero

SEEK_SET

entero que se puede pasar como parmetro a la


funcin fseek() para indicar posicionamiento relativo al
inicio del fichero

TMP_MAX

el nmero mximo de nombres de ficheros nicos


generables por la funcin tmpnam()

Variables que podemos encontrar en la <stdio.h>


El fichero de cabecera stdio.h define las siguientes variables:
Nombre

Descripcin

stdin

puntero a FILE que referencia la entrada estndar, normalmente el


teclado

stdout

puntero a FILE que referencia la salida estndar, normalmente el


monitor

stderr

puntero a FILE que referencia la salida de error estndar,


normalmente el monitor

11

Biblioteca Estndar del C

2011

Tipos de datos
Los tipos de datos definidos en el fichero de cabecera stdio.h son:

FILE - estructura que contiene informacin sobre el fichero o stream (flujo)


de texto necesario para realizar las operaciones de entrada/salida sobre l.
incluye:

posicin actual de stream

indicador de fin de fichero (EOF)

indicador de error

puntero al buffer del stream

fpos_t - tipo no-array capaz de identificar unvocamente la posicin de


cada byte en un archivo

size_t - tipo entero sin signo (positivo); es el tipo devuelto por el


operador sizeof

Ejemplos

Ejemplo No.1:
#include <stdio.h>
main()
{
int a, b;
printf( "Introduzca el primer nmero: " );
scanf( "%d", &a );
printf( "Introduzca el segundo numero: " );
scanf( "%d", &b );
printf( "Los valores son: %d, %d ", a, b );
}
Introduzca el primer nmero: 76
Introduzca el segundo numero: 45
Los valores son: 76, 45

12

Biblioteca Estndar del C

2011

Ejemplo No. 2:
#include <stdio.h>
main()
{
char a, b, c;
printf( "Introduzca primer caracter: " );
scanf( "%c", &a );
printf( "Introduzca segundo caracter: " );
fflush( stdin );
scanf( "%c", &b );
printf( "Introduzca tercer caracter: " );
fflush( stdin );
scanf( "%c", &c );
printf( "Los valores son: %c, %c, %c ", a, b, c );
}
La primera vez que se ejecuta scanf, el buffer del teclado est vaco, por tanto, no es
preciso utilizar fflush, pero s, en los dos casos posteriores. Obsrvese que,
a fflush hay que indicarle el buffer a limpiar, Standar Input (stdin) en este caso.

13

Biblioteca Estndar del C

2011

La librera Conio.h
Contiene los prototipos de las funciones, macros, y constantes para preparar y
manipular la consola en modo texto en el entorno de MS-DOS.
Funciones ms importantes de la <conio.h>
gotoxy (columna, fila)
Sita el cursor en la columna y fila especificada. Por ejemplo, esta instruccin:
gotoxy (5, 2);
sita el cursor en la fila 2, columna 5 de la pantalla. La siguiente instruccin
de escritura en consola comenzar a escribir a partir de esas coordenadas.
cprintf() y cscanf()
Son las equivalentes a printf() y scanf(). Su sintaxis es la misma, y es
recomendable usarlas en lugar de las funciones estndar para evitar
funcionamientos extraos.
textcolor(color)
Cambia el color del texto. Los colores predefinidos son: BLACK, BLUE, RED,
GREEN, CYAN, MAGENTA, BROWN, DARKGRAY. Adems, existen las
variedades claras de estos colores: LIGHTBLUE, LIGHTRED, LIGHTGREEN,
etc.
As, si ejecutamos:
textcolor (LIGHTRED);
el texto que se escriba a continuacin aparecer el color rojo intenso.
textbackground (color)
Establece el color del fondo del texto. Los colores predefinidos son los mismos
que para textcolor(). As, este cdigo:
textbackground (BLUE);
hace que el texto que se escriba a continuacin aparezca con el fondo en
color azul oscuro.
cgets
Esta funcin leer una cadena de caracteres desde la consola, guardando la
cadena (y su longitud) en el lugar apuntado por *cadena. La funcin cgets leer
caracteres hasta que encuentre una combinacin de retorno de lnea y nueva
lnea (CR/LF), o hasta que el nmero mximo de caracteres permitidos hayan

14

Biblioteca Estndar del C

2011

sido ledos. Si se lee una combinacin CR/LF, entonces es sustituido por un


carcter nulo '\0' antes de ser guardado la cadena.
Cputs
Muestra la cadena, que finaliza con el carcter nulo, apuntada por el argumento
cadena en la ventana de texto actual. Esta funcin es similar a la funcin puts,
pero con dos excepciones: la funcin cputs no convertir los caracteres de
nueva lnea (\n) en la pareja de caracteres de retorno de lnea/nueva lnea (\r\n)
tampoco aadir el carcter de nueva lnea al final del texto.
Kbhit
Revisa si una tecla pulsada est disponible. Cualesquier pulsadas disponibles
pueden ser recogidas con las funciones getch o getche.
getch ()
Lee un carcter desde el teclado, sin mostrar el eco y sin necesidad de pulsar
Return. Devuelve el cdigo ASCII del carcter tecleado. Ah va un ejemplo:
char c;
c = getch();
clrscr ()
Borra la pantalla. No necesita argumentos.

15

Biblioteca Estndar del C

2011

La librera Ctype.h
Este archivo de cabecera analiza el tipo de carcter dependiendo de la funcin
mandada a llamar. El carcter puede ser mandado a la funcin como un
nmero entero o como un carcter (variable o encerrado entre apstrofos). Si la
funcin determina que no es ese tipo de carcter regresa el valor de 0 (que
para c es un valor de falso y otro valor si lo es (para C es un valor de
verdadero). Existen tambin un par de funciones que permiten convertir un
carcter de minscula a mayscula y viceversa,
Funciones dentro de <Ctype.h>
Isalnum: determina si el character c es una letra del alfabeto (de la a a
la z sin distinguir entre maysculas y minsculas) o un digito. Si no es
letra o digito regresa un valor cero, de lo contrario regresa un valor
distinto de cero.
o Formato: Int isalnum (int c)
Programa
void main (void)
{ char letra;
letra=getche();
if (isalnum(letra))
printf("\n%c es una
letra o nmero", letra);
else
printf("\n%c no es
una letra ni nmero", letra);
}

Salida
Si letra='r'
"r es una letra o nmero"
Si letra='7'
"7 es una letra o nmero"
Si letra='$'
"$ no es una letra ni nmero"

16

Biblioteca Estndar del C

2011

Isdigit: determina si el carcter c es un nmero. Si no es un nmero


regresa un valor cero, de lo contrario regresa un valor distinto de cero.
o Fomarto: int isdigit (int c)
Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
if (isdigit(letra))
printf("\n%c es un
nmero", letra);
else
printf("\n%c no es
un nmero", letra);
}

Salida
Si letra='4'
"4 es un nmero"
Si letra='$'
"$ no es un nmero"

Isascii: determina si el entero c es un carcter de la tabla de cdigo


ASCII bsico (del 0 al 127). Si no es un carcter ASCII bsico regresa
un valor cero, de lo contrario regresa un valor distinto de cero.
o Formato: int isascii (int c)
Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
if (isascii(letra))
printf("\n%c es
ASCII bsico", letra);
else
printf("\n%c no es
un ASCII bsico", letra);
}

17

Salida
Si letra='+'
"+ es un ASCII bsico"
Si letra=''
" no es un ASCII bsico"

Biblioteca Estndar del C

2011

Isspace: determina si el caracter c es un caracter blanco (tab, espacio,


retorno de carro, cambio de lnea, tab vertical, salto de pgina). Si no es
caracter blanco regresa un valor cero, de lo contrario regresa un valor
distinto de cero.
o Formato: int isspace (int c)
Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
if (isspace(letra))
printf("\n%02x es
un caracter blanco", letra);
else
printf("\n%c no es
un caracter blanco", letra);
}

Salida
Si letra='\t'
"0x09 es un caracter blanco"
Si letra='$'
"$ no es un caracter blanco"

islower : determina si el caracter c es una letra minscula. Si no es


minscula regresa un valor cero, de lo contrario regresa un valor distinto
de cero.
o Formato: int islower (int c)
Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
if (islower(letra))
printf("\n%c es una
letra minscula", letra);
else
printf("\n%c no es
una letra minscula", letra);
}

Salida
Si letra='r'
"r es una letra minscula"
Si letra='R'
"R no es una letra minscula"
Si letra='&'
"& no es una letra minscula"

Isupper: Determina si el caracter c es una letra mayscula. Si no es


mayscula regresa un valor cero, de lo contrario regresa un valor distinto
de cero.
o Formato: int isupper (int c)

18

Biblioteca Estndar del C

2011

Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
if (isupper(letra))
printf("\n%c es una
letra mayscula", letra);
else
printf("\n%c no es
una letra mayscula", letra);
}

Salida
Si letra='R'
"R es una letra mayscula"
Si letra='r'
"r no es una letra mayscula"
Si letra='&'
"& no es una letra mayscula"

Toascii: convierte un entero a un carcter ASCII bsico (solo mantiene


los 7 bits menos significativos).
o Formato: int toascii (int c)
Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
printf("\n%c sin convertir",
letra);
printf("\n%c convertido a
ASCII", toascii(letra));
}

Salida
Si letra='r'
"r sin convertir"
"r convertido a ASCII"
Si letra=''
" sin convertir"
"# convertido a ASCII"

tolower : Convierte una letra mayscula a minscula. Si es una letra


mayscula retornara su equivalente en minscula, de lo contrario
retornar el carcter sin modificacin alguna.
o Formato: int tolower (int c)
Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
printf("\n%c sin convertir",
letra);
printf("\n%c en minscula",
tolower(letra));
}

19

Salida
Si letra='A'
"A sin convertir"
"a en minscula"
Si letra='5'
"5 sin convertir"
"5 en minscula"

Biblioteca Estndar del C

2011

toupper: Convierte una letra minscula a mayscula. Si es una letra


minscula retornara su equivalente en mayscula, de lo contrario
retornar el carcter sin modificacin alguna.
o Formato: int toupper (int c)
Ejemplo:
Programa
void main (void)
{ char letra;
letra=getche();
printf("\n%c sin convertir",
letra);
printf("\n%c en mayscula",
toupper(letra));
}

20

Salida
Si letra='a'
"a sin convertir"
"A en mayscula"
Si letra='5'
"5 sin convertir"
"5 en mayscula"

2011

Biblioteca Estndar del C

La librera Stdlib.h
stdlib.h , cuyas siglas se definien como: std-lib: standar library o
estndar, es el archivo de cabecera de la biblioteca estndar de
general del lenguaje de programacin C. Contiene los prototipos de
de C para gestin de memoria dinmica, control de procesos y
compatible con C++ donde se conoce como cstdlib.

biblioteca
propsito
funciones
otras. Es

Las funciones que pertenencen a stdlib.h pueden clasificarse en las siguientes


categoras: conversin, memoria, control de procesos, ordenacin y bsqueda,
matemticas.
Nombre

Descripcin
Conversin de tipos

atof (ascii to float)

cadena de caracteres a coma flotante

atoi (ascii to integer)

cadena de caracteres a entero

atol (C Standard
Library) (ascii to long)

cadena de caracteres a entero tamao largo

strtod (string to double)

cadena de caracteres a coma flotante tamao


doble

strtol (string to long)

cadena de caracteres a entero largo

strtoul (string to unsigned


long)

cadena de caracteres a entero largo sin signo


(positivo)

Generacin de nmeros pseudo-aleatorios


rand

Genera un nmero pseudo-aleatorio

srand

Establece la semilla para el generador de


nmeros pseudo-aleatorios

21

Biblioteca Estndar del C

2011

Gestin de memoria dinmica


malloc, calloc, realloc

Reservan memoria dinmica


del heap (montn o montculo)

free

Liberan memoria devolvindola al heap


Control de procesos

abort

terminar ejecucin anormalmente

atexit

registrar una funcin callback para la salida


del programa

exit

terminar ejecucin del programa

getenv

recuperar una variable de entorno

system

ejecutar un comando externo


Ordenacin y bsqueda

bsearch

bsqueda binaria en un array

qsort

ordena un vector
(informtica) usando Quicksort
Matemticas

abs, labs

valor absoluto

div, ldiv

divisin entera o euclidiana

Ahora pasaremos a definir algunas de las funciones que se utilizan


mas de esta librera que son:

22

Biblioteca Estndar del C

2011

Atoi: Convierte una cadena a un entero


Formato: int atoi ( const char * str );
Analiza la cadena str C interpretacin de su contenido como un nmero entero,
que se devuelve como un valor int.
Los descartes primera funcin como muchos espacios en blanco como sea
necesario hasta que el primer carcter no blanco se encuentra. Luego, a partir
de este personaje, toma un opcional signo inicial ms o menos seguido de
tantos caracteres numricos como sea posible, y las interpreta como un valor
numrico.
La cadena puede contener caracteres adicionales despus de los que forman
el nmero entero, que se ignoran y no tienen ningn efecto sobre el
comportamiento de esta funcin.
Si la primera secuencia de caracteres no est en blanco str no es un nmero
entero vlido, o si no existe tal secuencia, ya sea porque str est vaco o slo
contiene espacios en blanco, sin conversin se realiza.
Atof : convierte una cadena a doble
Formato: double atof ( const char * str );
Analiza la cadena str C interpretacin de su contenido como un nmero de
punto flotante y devuelve su valor como un doble.
Los descartes primera funcin como muchos espacios en blanco como sea
necesario hasta que el primer carcter no blanco se encuentra. Luego, a partir
de este personaje, toma como muchos personajes de lo posible que son
vlidos despus de una sintaxis parecida a la de los literales de coma flotante,
y las interpreta como un valor numrico. El resto de la cadena despus de que
el ltimo carcter vlido es ignorado y no tiene ningn efecto sobre el
comportamiento de esta funcin.
Un nmero vlido de punto flotante para atof est formado por una sucesin
de:
Un signo opcional ms o menos
Una secuencia de dgitos, de forma opcional que contiene un carcter de punto
decimal
Una parte exponente opcional, que a su vez consiste en una 'e ' o 'E'
caracteres seguido de un signo opcional y una secuencia de dgitos.
Si la primera secuencia de caracteres no est en blanco str no forman un
nmero vlido de punto flotante como acaba de definir, o si no existe tal
secuencia, ya sea porque str est vaco o slo contiene espacios en blanco, sin
conversin se realiza.

23

Biblioteca Estndar del C

2011

Rand: Devuelve un nmero entero pseudo-aleatorio en el rango de 0 a


RAND_MAX.
Formato: int rand ( void );
Este nmero es generado por un algoritmo que devuelve una secuencia de
nmeros aparentemente no relacionados cada vez que se llama. Este algoritmo
utiliza una semilla para generar la serie, que debera ser inicializado a un valor
distintivo con srand.
RAND_MAX es una constante definida en <cstdlib>. Su valor por defecto
puede variar entre las implementaciones pero se concede al menos 32.767.
Una forma tpica de generar nmeros pseudo-aleatorios en un rango
determinado utilizando rand es utilizar el mdulo del valor devuelto por el lapso
de gama y aade el valor inicial de la gama:
(% valor de 100) se encuentra en el rango de 0 a 99
(valor 100% + 1) se encuentra en el rango de 1 a 100
(valor 30% + 1985) est en el rango 1985 a 2014
Srand: inicializa el generador de nmeros aleatorios
Formato: void srand (unsigned int semilla);

El generador de nmeros pseudo-aleatorios se inicializa con el argumento


pasado como semilla.
Para cada valor de inicializacin diferentes utilizados en una llamada a srand,
el generador de nmeros pseudo-aleatorios se puede esperar para generar una
sucesin de diferentes resultados en las posteriores convocatorias de rand.
Dos inicializaciones diferentes con la misma semilla, la instruccin de
generador de pseudo-aleatorios para generar la misma sucesin de los
resultados de las posteriores convocatorias de rands en ambos casos.
Si la semilla se establece en 1, el generador se reinicializa a su valor inicial y
produce los mismos valores que antes de cualquier llamada a srand o rands.
Con el fin de generar nmeros al azar-como, srand es normalmente inicializado
a un valor distintivo, como los relacionados con el tiempo de ejecucin. Por
ejemplo, el valor devuelto por la funcin de tiempo (declarada en <ctime>
encabezado) es diferente a cada segundo, que es distintivo suficiente para la
mayora de las necesidades del azar.
System: ejecuta un comando del sistema
Formato: int system (const char * command);

24

Biblioteca Estndar del C

2011

Inicia el procesador de comandos para ejecutar un comando. Una vez que la


ejecucin de comandos ha terminado, el procesador da el control al programa,
devolver un valor entero, cuya interpretacin depende del sistema.
La funcin de llamada tambin se puede utilizar con NULL como argumento
para comprobar si existe un procesador de comandos.

25

Biblioteca Estndar del C

2011

La librera String.h
string.h es un archivo de la Biblioteca estndar del lenguaje de programacin
C que contiene la definicin de macros, constantes, funciones y tipos de
utilidad para trabajar con cadenas de caracteres y algunas operaciones de
manipulacin de memoria (el nombre string puede ser algo inapropiado).
Las funciones declaradas en string.h se han hecho muy populares, por lo que
estn garantizadas para cualquier plataforma que soporte C. Sin embargo,
existen algunos problemas de seguridad con estas funciones, como
el desbordamiento de buffer (buffer overflow), que hacen que algunos
programadores prefieran opciones ms seguras frente a la portabilidad que
estas funciones ofrecen. Adems, las funciones para cadenas de caracteres
slo trabajan con conjuntos de caracteres ASCII o extensiones ASCII
compatibles.
Funciones dentro de <string.h>
Dentro de las funciones que nos ofrece la biblioteca encontramos las
siguientes:
Nombres
memcpy

Descripcin
copia n bytes entre dos reas de memoria que no deben
solaparse

memmove copia n bytes entre dos reas de memoria; al contrario


que memcpy las reas deben solaparse
memchr

busca un valor a partir de una direccin de memoria dada y


devuelve un puntero a la primera ocurrencia del valor buscado
o NULL si no se encuentra

memcmp

compara los n primeros caracteres de dos reas de memoria

memset

sobre escribe un rea de memoria con un patrn de bytes dado

strcat

aade una cadena al final de otra

strncat

aade los n primeros caracteres de una cadena al final de otra

26

Biblioteca Estndar del C

2011

strchr

localiza un carcter en una cadena, buscando desde el principio

strrchr

localiza un carcter en una cadena, buscando desde el final

strcmp

compara dos cadenas numricamente ('a'!='A')

strncmp

compara los n primeros caracteres de dos cadenas


numricamente ('a'!='A')

strcoll

compara dos cadenas segn la colacin actual ('a'=='A')

strcpy

copia una cadena en otra

strncpy

copia los n primeros caracteres de una cadena en otra

strerror

devuelve la cadena con el mensaje de error correspondiente al


nmero de error dado

strlen

devuelve la longitud de una cadena

strspn

devuelve la posicin del primer carcter de una cadena que no


coincide con ninguno de los caracteres de otra cadena dada

strcspn

devuelve la posicin del primer carcter que coincide con alguno


de los caracteres de otra cadena dada

strpbrk

encuentra la primera ocurrencia de alguno de los caracteres de


una cadena dada en otra

strstr

busca una cadena dentro de otra

strtok

parte una cadena en una secuencia de tokens

strxfrm

transforma una cadena en su forma de colacin (??)

strrev

invierte una cadena

27

Biblioteca Estndar del C

2011

Entre todas estas funciones que nos ofrece la string.h podemos considerar las
siguientes como las de uso frecuente, en cuanto a esta biblioteca se refiere:
Nombre

Formato

Descripcin

Valor retornado

# include <string.h> El strcpy () copia la


cadena apuntada por
char * strcpy (char s2 (incluyendo el byte
* s1, const char *
nulo de terminacin)
s2);
en el array apuntado
por s1. Si la copia se
realiza
entre
los
objetos
que
se
superponen,
el
comportamiento
es
indefinido.

El
strcpy
()
devuelve s1, sin
valor de retorno se
reserva
para
indicar un error.

strlen( )

# include <string.h> La funcin strlen ()


calcula el nmero de
size_t strlen (const bytes de la cadena a la
char * s);
que s puntos, sin
incluir el byte nulo de
terminacin.

La funcin strlen ()
devuelve la
longitud de s, sin
valor de retorno se
reserva para
indicar un error.

strncmp( )

# include <string.h> El strncmp () compara


no ms de n bytes
int strncmp (const
(bytes que siguen un
char * s1, const
byte nulo no se
char * s2, size_t n); comparan) del array
apuntado por s1 con la
cadena apuntada por
s2.
El signo de un valor de
retorno distinto de cero
se determina por el
signo de la diferencia
entre los valores de la
primera
pareja
de
bytes
(ambos
interpretados como el
tipo unsigned char)
que difieren en las
cadenas
que
se
comparan.

Si es correcto,
strncmp ()
devuelve un
nmero entero
mayor, igual o
inferior a 0, si la
matriz
posiblemente
terminada en nulo
apuntado por s1
es mayor, igual o
inferior a la matriz
posiblemente
terminada en nulo
apuntada por s2 ,
respectivamente.

strcpy( )

28

Biblioteca Estndar del C

strncpy( )

29

El strncpy () copia no
ms de n bytes (bytes
que siguen un byte
nulo no se copian) de
la cadena apuntada
por s2 a la cadena
apuntada por s1. Si la
# include <string.h> copia se realiza entre
los objetos que se
char * strncpy (char superponen,
el
* s1, const char *
comportamiento
es
s2, size_t n);
indefinido.
Si el array apuntado
por s2 es una cadena
que es menor que n
bytes, bytes nulos se
aaden a la copia en el
array apuntado por s1,
hasta que n bytes en
todos se escriben.

2011

El strncpy ()
devuelve s1, sin
valor de retorno se
reserva para
indicar un error.

Biblioteca Estndar del C

2011

La librera Time.h
La biblioteca time.h es un archivo de cabecera de la biblioteca
estndar del lenguaje de programacin C que contiene funciones para
manipular y formatear la fecha y hora del sistema.
Funcin
asctime()

Uso
Obtener una cadena alfanumrica del tipo Mon Nov 21 11:31:54
1993\n\0 a partir de una estructura tm
clock()
Obtener el tiempo transcurrido desde el comienzo de la
ejecucin del programa
ctime()
Obtener una cadena alfanumrica del tipo sealado
para asctime a partir de un timestamp.
difftime()
Obtener el tiempo en segundos entre dos timestamp.
gmtime()
Obtener una fecha GMT en formato tm a partir de un
timestamp con la hora local.
localtime() Obtener una fecha en formato tm a partir de un timestamp.
mktime()
Obtener un timestamp numrico a partir de una fecha tm.
strftime()
Obtener una representacin alfanumrica a partir de una
fecha tm (acepta un formateo similar a printf)
time()
Obtener un timestamp con la fecha y hora del Sistema.
Adems de las funciones anteriores, la STL define tres tipos
simples: size_t; clock_t, time_t y una estructura tm. En realidad se trata de
typedefs dependientes de la implementacin.
typedef long time_t;
size_t

clock_t
time_t
tm

30

El tipo size_t es utilizado en muchas ocasiones. Por ejemplo, es el


resultado devuelto por el operador sizeof . Es un entero sin signo
cuyo tipo exacto depende de la implementacin, aunque suele ser
de al menos 32 bits (4 Bytes). Normalmente est definido en
diversos ficheros de cabecera, entre otros <ctime>, aunque es
frecuente que de una cabecera se redireccione a otra donde
realmente est definido. En el caso de MS Visual C++ 6.0 y Borland
C++size_t es un tipo unsigned int
Representa el valor devuelto por la funcin clock. En Borland C++
es un long int
Representa valores devueltos por las funciones time() y mktime().
En MS Visual C++ y Borland C++ es un long int
Es una estructura utilizada por diversas funciones de la Librera
para almacenar informacin relativa a fecha y hora. Por
ejemplo: asctime y localtime. Responde a la definicin siguiente:
struct tm {
int tm_sec; // Segundos pasados del minuto (0-61)
int tm_min; // Minutos pasados de la hora (0-59)
int tm_hour; // Horas desde medianoche (0-23)
int tm_mday; // Dia del mes (1-31)

Biblioteca Estndar del C

2011

int tm_mon; // Nmero del mes (0-11)


int tm_year; // Aos transcurridos desde 1900
int tm_wday; // Dia de semana (0-6; Domingo = 0)
int tm_yday; // Dia del ao (0-365)
int tm_isdst; /* Adelanto de hora para horario de verano
1=Si; 0=No; -1=Indefinido */
};

Definicin de las funciones de time.h

Asctime( )
La funcin se presenta en dos versiones: asctime para caracteres normales
y _wasctime para caracteres anchos, que responden a los siguientes
prototipos:
#include <time.h>
char* asctime(const struct tm* tmPtr);
wchar_t* _wasctime(const struct tm* tmPtr);
Descripcin:
Ambas funciones aceptan un puntero a una estructura tipo tm , y devuelven un
puntero a una cadena de caracteres con informacin alfanumrica sobre la
fecha contenida en la estructura. La cadena es de ancho fijo (26 caracteres),
mantiene siempre el mismo formato, y es reescrita cada vez que se invoca la
funcin:
Mon Nov 21 11:31:54 1993\n\0
El reloj utilizado es de 24 horas, y cualquiera que sea el tipo de caracteres
utilizados (anchos o estrechos), termina en los caracteres NL (New Line) y NUL
(nulo).
Ejemplo:
#include <iostream>
using namespace std;
#include <ctime>
int main() {

31

// ==================

Biblioteca Estndar del C

2011

struct tm myt;
myt.tm_sec = 1; myt.tm_min = 30; myt.tm_hour = 9;
myt.tm_mday = 22; myt.tm_mon = 11; myt.tm_year = 56;
myt.tm_wday = 4; myt.tm_yday = 0; myt.tm_isdst = 0;
char* cTim = asctime(&myt));
cout << "Fecha resultante: " << cTim;
return 0;
}
Salida:
Fecha resultante: Thu Dec 22 09:30:01 1956
Clock( )
Prototipo:
#include <time.h>
clock_t clock(void);
Descripcin:
Esta funcin devuelve un valor de tipo clock_t que representa el tiempo desde
el comienzo del programa hasta el momento de invocacin de la funcin.
Mediante invocaciones sucesivas puede ser utilizada para obtener el tiempo
entre dos puntos del programa. En caso de error, si el tiempo de proceso no
est disponible o no es representable, la funcin devuelve -1.
El valor devuelto representa el nmero de "tics" del RTC desde el inicio del
programa. Es posible calcular este valor en segundos dividindolo por una
constante denominadaCLK_TCK en unos sistemas y CLOCKS_PER_SEC en
otros. Definida en <ctime>.
En el fichero <time.h> del compilador Borland C++ 5.5 encontramos las
definiciones siguientes:
#define CLOCKS_PER_SEC 1000.0
#define CLK_TCK 1000.0
Ejemplo:

32

Biblioteca Estndar del C

2011

cout << "Desde el inicio: " << clock()/CLK_TCK << " segundos\n";
Ctime( )
Esta funcin se presenta en dos versiones: ctime para caracteres normales
y _wctime para caracteres anchos. Prototipos:
#include <ctime>
char* ctime(const time_t* sTptr);
wchar_t* _wctime(const time_t* sTptr);
Descripcin:
Ambas funciones aceptan un puntero a un valor time_t que supuestamente
contiene un timestamp expresado en segundos despus del inicio de la poca
UNIX (1 de Enero de 1970 00:00:00 GMT). Por ejemplo un valor devuelto por la
funcin time. Ambas funciones devuelven un puntero a una cadena de 26
caracteres que contiene la fecha y hora con un formato alfanumrico en el que
todos los campos tienen siempre el mismo ancho, y que es reescrita cada vez
que se invoca a la funcin (el reloj utilizado es de 24 horas):
Mon Nov 21 11:31:54 1993\n\0
Si la fecha corresponde a un momento anterior a Enero de 1970 se obtiene una
cadena nula.
Ejemplo:
#include <iostream>
using namespace std;
#include <ctime>
int main() { // =================
time_t tSec = 31536000;
time_t* tPtr = &tSec;
char* sTptr = ctime(tPtr);
cout << "Fecha: " << sTptr ;
return 0;
}
Salida:

33

Biblioteca Estndar del C

2011

Fecha: Fri Jan 01 01:00:00 1971


Difftime( )
Prototipo:
#include <time.h>
double difftime(time_t time2, time_t time1);
Descripcin:
La funcin acepta dos valores tipo time_t y devuelve un double con el tiempo
entre ambos valores expresado en segundos.
Ejemplo:
#include <iostream>
using namespace std;
#include <ctime>
int main() {
// =================
time_t first, second;
first = time(NULL);
delay(2000); // esperar 2 segundos
second = time(NULL);
cout << "Diferencia: " << difftime(second, first)) << " segundos\n";
return 0;
}
Gmtime ( )
Prototipo:
#include <time.h>
struct tm* gmtime(const time_t* tPtr);
Descripcin:
La funcin acepta un puntero a un tipo time_t, que suponemos contiene una
fecha local (por ejemplo, obtenida con la funcin time , y devuelve un puntero a

34

Biblioteca Estndar del C

2011

una estructura tipotm que contiene la fecha convertida a la hora GMT


correspondiente.
Esta funcin puede ser til en un programa que maneje comunicaciones por
Internet, donde es costumbre utilizar la hora GMT en vez de la hora local.
Ejemplo:
#include <iostream>
using namespace std;
#include <ctime>
int main() {
// =================
time_t tSac = time(NULL); // instante actual
struct tm* pt1 = localtime(&tSac);
cout << "hh:mm:ss " << pt1->tm_hour << ":" << pt1->tm_min << ":"
<< pt1->tm_sec << endl;
cout << "dd-mm-aaaa: " << pt1->tm_mday << "-" << pt1->tm_mon+1 << "-"
<< pt1->tm_year+1900 << endl;
tm tm2 = *gmtime(&tSac); // deferencia y asignacin
cout << "hh:mm:ss " << tm2.tm_hour << ":" << tm2.tm_min << ":"
<< tm2.tm_sec << endl;
cout << "dd-mm-aaaa: " << tm2.tm_mday << "-" << tm2.tm_mon+1 << "-"
<< tm2.tm_year+1900 << endl;
return 0;
}
Salida:
hh:mm:ss 22:45:2
dd-mm-aaaa: 23-5-2003
hh:mm:ss 5:45:2
dd-mm-aaaa: 24-5-2003
Comentario:
Suponemos que el ordenador est situado en S. Francisco (USA), donde
utilizan el horario PDT. En Mayo ya rige el horario de verano que tiene un

35

Biblioteca Estndar del C

2011

retraso de 7 horas respecto a la hora Zul. Cuando en S. Francisco son las


22:45 del da 23, en Greenwich son las 5:45 de la madrugada del da 24.
Localtime( )
Esta funcin, junto con time, es posiblemente una de las ms tiles de entre las
que se refieren a asuntos de fecha y hora.
Prototipo:
#include <time.h>
struct tm* localtime(const time_t* timer);
Descripcin:
La funcin acepta un puntero a un tipo time_t, que contiene una fecha
expresada en segundos desde el inicio de la poca UNIX, y devuelve un
puntero a una estructura tm cuyos miembros contienen informacin sobre la
fecha introducida. Sus miembros son sobreescritos con cada invocacin a la
funcin.
Ejemplo:
#include <iostream>
using namespace std;
#include <ctime>
int main() {
// =================
char* dS[7] = {"Domingo","Lunes","Martes","Miercoles",
"Jueves","Viernes","Sabado"};
time_t tSac = time(NULL);
// instante actual
struct tm* tmP = localtime(&tSac);
cout << "hh:mm:ss " << tmP->tm_hour << ":" << tmP->tm_min << ":"
<< tmP->tm_sec << endl;
cout << "dd-mm-aaaa: " << tmP->tm_mday << "-" << tmP->tm_mon+1 << "-"
<< tmP->tm_year+1900 << endl;
cout << "Dia de semana: " << dS[tmP->tm_wday] << endl;
cout << "Dia del ao: " << tmP->tm_yday << endl;
cout << "Horario de verano: " << (tmP->tm_isdst ? "Si" : "No") << endl;

36

Biblioteca Estndar del C

2011

return 0;
}

Salida:
hh:mm:ss 11:13:23
dd-mm-aaaa: 22-5-2003
Dia de semana: Jueves
Dia del ao: 141
Horario de verano: Si
Mktime ( )
Prototipo:
#include <time.h>
time_t mktime(struct tm* tmPtr);
Descripcin:
La funcin mktime realiza justamente la operacin inversa que la
anterir localtime. Acepta un puntero a una estructura tm con informacin sobre
una fecha y devuelve un valor tipo time_t con el tiempo en segundos desde el
inicio de la poca UNIX.
Strftime( )
Esta funcin se presenta en dos versiones: strftime para caracteres normales
y wcsftime para caracteres anchos.
Prototipo:
#include <time.h>
size_t strftime(char* str, size_t maxsize,
const char* fmt, const struct tm* mPt);
size_t wcsftime(wchar_t* str, size_t maxsize,
const wchar_t* fmt, const struct tm* mPt);
Descripcin:

37

Biblioteca Estndar del C

2011

Como puede verse, la funcin devuelve un tipo size_t, y acepta cuatro


argumentos: un puntero-a-carcter str que seala una cadena de caracteres
donde se obtendr el resultado; un tipo size_t maxize; un puntero a cadena de
caracteres constante fmt y un puntero mPt a una estructura tm que suponemos
contiene datos de una fecha.
La funcin produce una cadena alfanumrica terminada en un carcter nulo, y
la sita en el lugar sealado por str. El valor devuelto es la longitud de esta
cadena incluyendo el carcter de terminacin. En caso de error, o si la longitud
resulta mayor que maxsize, el valor devuelto es cero y el resultado obtenido
(cadena situada en str) es indeterminado.
La cadena producida es una versin de la fecha contenida en la estructura,
pero formateada segn determinados cdigos de formateo que se sitan en la
cadena sealada por fmt. El sistema es similar al de la conocida funcin printf()
que proporciona salidas formateadas. Los cdigos permitidos son muy
numerosos, de forma que puede controlarse todos los detalles de la
representacin (consulte el manual de su compilador al respecto).
Ejemplo:
#include <iostream>
using namespace std;
#include <ctime>
int main() {
// =================
time_t tSac = time(NULL); // instante actual
tm tms = *localtime(&tSac);
cout << "hh:mm:ss " << tms.tm_hour << ":" << tms.tm_min << ":"
<< tms.tm_sec << endl;
cout << "dd-mm-aaaa: " << tms.tm_mday << "-" << tms.tm_mon+1 << "-"
<< tms.tm_year+1900 << endl;
char sRes[80];
size_t r = strftime(sRes, 80,
"Son %M minutos pasados de las %I horas (%Z) %A, %B %d 20%y",
&tms);
if (r) cout << sRes;

38

Biblioteca Estndar del C

2011

return 0;
}

Salida:
hh:mm:ss 20:14:13
dd-mm-aaaa: 24-5-2003
Son 14 minutos pasados de las 08 horas (WET) Saturday, May 24 2003
Time( )
Esta funcin devuelve la hora actual del sistema en segundos desde el inicio de
la poca UNIX (1 de Enero de 1970 00:00:00 GMT).
Prototipo:
#include <ctime>
time_t time(time_t* tPtr);
Descripcin:
La funcin acepta un puntero a time_t y devuelve un valor time_t que es el
tiempo en segundos transcurrido desde el inicio de la poca UNIX. En realidad
puede realizar dos funciones: si se pasa un valor no nulo, el valor
correspondiente se almacena en el sitio sealado por el puntero. Si este valor
es nulo entonces el valor no se almacena en ningn sitio. En cualquier caso
siempre devuelve un valor con el instante actual en segundos desde las 0
horas del 1 de Enero de 1970.
Ejemplo:
#include <iostream>
using namespace std;
#include <ctime>
int main() { // =================
time_t t1 = 0;
time_t* pt1 = &t1;

39

Biblioteca Estndar del C

time(pt1);
cout << "Desde la epoca UNIX " << *pt1 << " segundos\n";
time_t t2 = time(NULL);
cout << "Desde la epoca UNIX " << t2 << " segundos\n";
return 0;
}
Salida:
Desde la epoca UNIX 1053550492 segundos
Desde la epoca UNIX 1053550492 segundo

40

2011

Biblioteca Estndar del C

2011

La librera Math.h
Math.h es un archivo de cabecera de la biblioteca estndar del lenguaje de
programacin C diseado para operaciones matemticas bsicas. Muchas de
sus funciones incluyen el uso de nmeros en coma flotante. C++ tambin
implementa estas funciones por razones de compatibilidad y las declara en la
cabecera cmath.
Funciones dentro de <math.h>
Nombre
Acos

Asin

Atan

Atan2

Descripcin
Calcula el valor principal del arco
coseno de x. Puede producirse un
error de dominio para los argumentos
que no estn en el intervalo [-1, +1]
Calcula el valor principal del arco
seno de x. Puede producirse un error
de dominio para los argumentos que
no estn en el intervalo [-1, +1].
Calcula el valor principal del arco
tangente de x.
Calcula el valor principal del arco
tangente de y/x, usando los signos de
ambos argumentos para determinar el
cuadrante del valor de retorno. Puede
producirse un error de dominio si
ambos argumentos son cero.

Ceil

Calcula el valor integral ms pequeo


que no sea menor de x.

Cos

Calcula el coseno de x (medido en


radianes).

Exp

Calcula la funcin exponencial de x.

Fabs

Calcula el valor absoluto del nmero


de coma flotante, x.

Floor

Calcula el valor integral ms grande


que no sea mayor de x.

Fmod

Calcula el resto de coma flotante de la


divisin de x/y.

Log

Calcula el logaritmo natural (o


neperiano). Puede producirse un error
de dominio si el argumento es

41

Biblioteca Estndar del C

2011

negativo. Puede producirse un error


de recorrido si el argumento es cero.

Pow

Sin

Calcula x elevado a la potencia de y.


Puede producirse un error de dominio
si x es negativo e y no es un valor
entero. Tambin se produce un error
de dominio si el resultado no se
puede representar cuando x es cero e
y es menor o igual que cero. Un error
de recorrido puede producirse.
Calcula el seno de x (medido en
radianes).

Sqrt

Calcula la raz cuadrada del valor no


negativo de x. Puede producirse un
error de dominio si x es negativo.

Tan

Calcula la tangente de x (medido en


radianes).

Abs

Calcula el valor absoluto.

42

Biblioteca Estndar del C

2011

Programa Ejemplo
El siguiente programa fue un programa hecho por el grupo en el cual se
muestran muchas de las funciones explicadas anteriormente que encontramos
en la Biblioteca Estndar del C.
Programa Fuente:
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include <time.h>
#define pi 3.1416
main()
{ float r,a,v;
int opcion,x=0;
char resp='s',n[15];
clock_t comienzo;
do
{comienzo=clock();
printf("Introduzca su nombre ");
scanf("%[^\n]",&n);
printf("\nIntroduzca el radio de su esfera: ");
scanf("%f",&r);
printf("1) Area\n2) Volumen\n");
printf("Digite la opcion de la operacion a realizar ");
scanf("%i",&opcion);
switch(opcion)
{ case 1: a=4*pi*r*r;
printf("\n");

43

Biblioteca Estndar del C

2011

puts(n);
printf("\nEl area de la esfera es de: %.2f",a);
break;
case 2: v=(4/3)*pi*(pow(r,3));
printf("\n");
puts(n);
printf("\nEl volumen de la esfera es de: %.3f",v);
break;
default:printf("\nIntrodujo un valor no valido para la opcin de la operacin");
}
printf("\nDesea hacer la operacin otra vez s/n: ");
fflush(stdin);
scanf("%c",&resp);
if(isupper(resp))
resp='s';
fflush(stdin);
}
while(resp=='s');
printf("\nEl proceso tuvo un tiempo de duracin de: %.1f segundos",(clock()comienzo)/(double)CLOCKS_PER_SEC);
getch();
return 0;
}

44

Biblioteca Estndar del C

Capturas de pantalla:

45

2011

Biblioteca Estndar del C

2011

Conclusiones

El lenguaje de programacin C posee diversas libreras dentro de la


Librera Estndar del C, las cuales nos ayudan a realizar funciones para as no
tendramos que programarlas desde cero.
Entre las bibliotecas encontramos:

Stdio.h: la cual nos ayuda con los datos de E/S


Math.h: la cual nos ayuda con funciones matemticas (sen, cos,)
Conio.h: la cual nos ayuda a modificar la pantalla de MS-DOS
Time.h: la cual nos ayuda con todo tipo de funciones referentes al
tiempo.
Ctype.h: que nos ayuda con operaciones bsicas de caracteres.
Stilib.h: que nos ayuda con mtodos dinmicos entre otros.
String.h: que nos ayuda a manipular cadenas.
Al final podemos decir que: las biblioteca estndar de c son libreras que nos
facilitan la programacin en c ya que poseen funciones creadas que van a
realizar un trabajo en especifico en nuestro programa, estas funciones nos
pueden servir para e/s de datos, manejo de pantalla, manejo de cadenas y
caracteres, adems de las funciones matemticas.

46

Biblioteca Estndar del C

2011

Bibliografa y Web-grafas (Referencia electrnica)

1. Luis Joyanes Aguilar. Fundamentos de Programacin, Algoritmos,


estructura de datos y objetos. Cuarta Edicin. Mc Graw Hill
2. Google Chrome. Autor: Desconocido. Biblioteca Estndar del C. Fecha de
Publicacin:
Desconocida.
15
de
abril
de
2011.
http://es.wikipedia.org/wiki/Biblioteca_est%C3%A1ndar_de_C

3. Google Chrome. Autor: Desconocido. Stdlib.h. Fecha de Publicacin:


Desconocida. 17 de abril de 2011. http://es.wikipedia.org/wiki/Stdlib.h
4. Google Chrome. Autor: Desconocido. Ctype.h. Fecha de Publicacin:
Desconocida. 17 de abril de 2011. http://es.wikipedia.org/wiki/Ctype.h

5. Google Chrome. Autor: Zator Systems. 9.1 Fecha y Hora. Fecha de


Publicacin:
Desconocida.
17
de
abril
de
2011.
http://www.zator.com/Cpp/E9_1.htm

6. Google Chrome. Autor: Desconocido. Librerias de C. Fecha de


Publicacin: Desconocida. 18 de abril de 2011.
http://docs.mis-algoritmos.com/c.funcion.putc.html
7. Google Chrome. Autor: Desconocido. Stdio.h. Fecha de Publicacin:
Desconocida. 18 de abril de 2011. http://es.wikipedia.org/wiki/Stdio.h

8. Google Chrome. Autor: Alberto Pacheco. Funciones y Libreras. Fecha de


Publicacin: 12 de marzo de 2007. 18 de abril de 2011.
http://expo.itch.edu.mx/view.php?f=c_35

9. Google Chrome. Autor: Marta Garduo. Archivo de Cabecera. Fecha de


Publicacin: 16 de octubre de 2008. 18 de abril de 2011.
http://fcqi.tij.uabc.mx/docentes/mgarduno/program1/archivos_cabecera.htm

47

Você também pode gostar