Sunteți pe pagina 1din 25

UNIVERSIDAD CENTROAMERICANA

Facultad de Ciencia, Tecnologa y Ambiente


Ingeniera en Sistemas de Informacin

Laboratorio de Programacin I
Bibliotecas en C/C++

Managua, junio de 2016

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

Libreras en C/C++
Cuando creamos programas nos damos cuenta que algunas partes del cdigo se utilizan en muchos de
ellos. Por ejemplo, podemos tener varios programas que utilizan nmeros y las operaciones sobre ellos
siempre son las mismas. Tambin es posible, por ejemplo, que nos guste hacer juegos, y nos damos
cuenta que estamos repitiendo una y otra vez el cdigo para mover una imagen por la pantalla.
Una solucin sera poder poner esas operaciones en un archivo separado de los programas concretos y
tenerlas ya compiladas, de forma que podamos usarlas siempre que queramos. Las ventajas enormes de
esto son:
No tener que volver a escribir el cdigo (o hacer copy-paste).
Nos ahorraremos el tiempo de compilar una y otra vez ese cdigo que ya est compilado. Adems,
ya sabemos que mientras hacemos un programa, probamos y corregimos, hay que compilar
muchas veces.
El cdigo ya compilado estar probado y ser fiable. No las primeras veces, pero s cuando ya lo
hayamos usado en programas distintos y le hayamos ido corrigiendo los errores.
La forma de hacer esto es a travs de libreras. Una librera es un archivo que contiene una o ms
funciones que tenemos ya compiladas y preparadas para ser utilizadas en cualquier programa que
hagamos. En lenguaje C/C++, los fabricantes de software proporcionan bibliotecas de funciones, como es
el caso de C ANSI y ANSI C++, de tal forma que un programa se compondr de sus propias funciones y
se combinar con las funciones adecuadas de las bibliotecas. Estas bibliotecas proporcionan funciones de
aplicacin en diferentes campos, tales como matemticas, gestin de archivos, grficos, cadenas de
caracteres, etc. Las libreras suelen venir incorporadas al compilador, y adems de las estndar, podemos
encontrar una diversa ndole de bibliotecas que los programadores pueden utilizar libremente.
Otro concepto de biblioteca: es un conjunto de recursos (algoritmos) prefabricados que puede utilizar el
programador para realizar determinadas operaciones. Las declaraciones de las funciones (prototipos)
utilizadas en estas libreras junto con algunas macros y constantes predefinidas que facilitan su
utilizacin, se agrupan en ficheros de nombres conocidos que suelen encontrarse en sitios predefinidos.
Estos ficheros se suelen llamar "archivos de cabecera" porque es tradicin utilizar las primeras lneas del
programa para poner las directivas #include que los incluirn en el cdigo fuente durante la fase de
preprocesado.
Una librera no trata de caractersticas que puedan considerarse estndar del lenguaje C/C++, sino de
particularidades (aunque muy extendidas) de algunas plataformas. Concretamente de los entornos de
programacin C/C++ para los Sistemas Windows de Borland y del propio Microsoft.
Adems, en informtica, el concepto "Librera" es muy general, y no est asociado a ningn lenguaje
concreto (aunque C y C++ las utilizan ampliamente). De hecho, es posible (y frecuente) utilizar libreras
desde un lenguaje, que han sido escritas en otro. Por ejemplo, buena parte de las libreras de C++Builder,
la denominadas VCL "Visual Component Library", han sido desarrolladas en Pascal.
De forma general, el trmino librera se utiliza para referirse a un conjunto de mdulos objeto (resultados
de compilacin) agrupados en un solo fichero que suele tener las extensiones .LIB, .OBJ, .BPI o .DLL.

Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

Estos ficheros permiten tratar las colecciones de mdulos como una sola unidad, y representan una forma
muy conveniente para el manejo y desarrollo de aplicaciones grandes, adems de ser un concepto muy
frtil para la industria del software, ya que permiten la existencia de las libreras de los propios
compiladores y de un mercado de utilidades y componentes adicionales. Son las denominadas libreras
de terceras partes, en referencia a que no son incluidas de forma estndar con los compiladores, ni creadas
por el programador de la aplicacin.
En este sentido, el software se parece a cualquier otro mercado de componentes. Adems de las libreras
ms o menos extensas que acompaan a los compiladores, pueden adquirirse otras, que permiten aadir a
nuestros programas las funcionalidades ms diversas sin necesidad de ser un experto en cada rea de la
programacin y sin necesidad de que tengamos que estar reinventando la rueda constantemente.
Los compiladores C/C++ incluyen un amplio repertorio de clases, funciones y macros que permiten
realizar una amplia variedad de tareas, incluyendo entradas/salidas de bajo y alto nivel; manipulacin de
cadenas alfanumricas y ficheros; control de procesos (incluyendo multiproceso); manejo de memoria;
clculos matemticos y un largo etctera. Este repertorio de recursos es denominado colectivamente como
"Rutinas de librera"; "Libreras de ejecucin" RTL ("Runtime Librarys") o simplemente "Libreras".
Puede decirse que el lenguaje aislado (tal cual) no tiene prcticamente mucha utilidad sin la concurrencia
de estas utilidades.
El Estndar C++ las clasifica segn su utilidad:

Soporte del lenguaje


Diagnstico
Utilidades generales
Cadenas alfanumricas ("Strings")
Localizacin
Contenedores
Iteradores
Algoritmos
Clculo numrico
Entrada/Salida

Librera Estndar C++


El Estndar C++ define la denominada Librera Estndar que debe acompaar a cada implementacin del
compilador que se adhiera al estndar. Es decir: la norma determina cules son, cmo se llaman y cmo
se utiliza este conjunto de algoritmos que deben acompaar (como mnimo) a cada implementacin del
compilador que quiera llamarse "Estndar". La versin ISO/IEC 14882, del ao 1998, especifica que se
compone de 32 ficheros de cabecera de nombres fijos y conocidos, agrupados segn la funcionalidad de
los algoritmos:
<algorithm>
<iomanip>
<list>
<ostream>
<streambuf>
<bitset>
<ios>
<locale>
<queue>
<string>
<complex>
<iosfwd>
<map>
<set>
<typeinfo>
<deque>
Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

<iostream>
<exception>
<valarray>
<stdexcept>

<memory>
<istream>
<fstream>
<vector>

Bibliotecas en C/C++

<sstream>
<new>
<iterator>
<functional>

<utility>
<stack>
<numeric>
<limits>

Ficheros
Funcionalidad / Funciones
<algorithm> Parte de la STL que describe los algoritmos.
<bitset>
Parte de la STL relativa a contenedores tipo bitset. Set de valores
booleanos.
<complex> Parte de la librera numrica de la STL relativa a los complejos.
<deque>
Parte de la STL relativa a contenedores tipo deque; un tipo de colas:
"Double-ended-queue".
<exception> Parte de la librera de diagnstico relativa al manejo de excepciones.
<fstream> Flujos hacia/desde ficheros.
<functional> Parte de la STL relativa a Objetos-funcin.
<iomanip> Manipuladores.
<ios>
Supreclases para manejo de flujos de E/S.
<iosfwd>
Contiene declaraciones adelantadas de todas las plantillas de flujos y sus
typedefs estndar. Por ejemplo ostream.
<iostream> Parte del a STL que contiene los algoritmos estndar de E/S.
<istream> Algoritmos estndar de flujos de entrada.
<iterator> Parte de la STL relacionada con iteradores, un tipo de puntero que
permite utilizar los algoritmos de la Librera con las estructuras de datos
representadas por los contenedores.
<limits>
Descripcin de propiedades dependientes de la implementacin que
afectan a los tipos fundamentales.
<list>
Parte de la STL relativa a contenedores tipo list; listas doblemente
enlazadas.
<locale>
Parte de la STL relativa a la internacionalizacin.
<map>
Parte de la STL relativa a contenedores tipo map.
<memory> Utilidades relativas a la gestin de memoria, incluyendo asignadores y
punteros inteligentes.
<new>
Manejo de memoria dinmica.
<numeric> Parte de la librera numrica de la STL relativa a operaciones numricas.
<ostream> Algoritmos estndar para los flujos de salida.
<queue>
Parte de la STL relativa a contenedores tipo queue; colas de objetos.
<set>
Parte de la STL relativa a contenedores tipo set.
<sstream> Flujos hacia/desde cadenas alfanumricas.
<stack>
Parte de la STL relativa a contenedores tipo stack; pilas de objetos.
Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

Ficheros
<string>

Funcionalidad / Funciones
Parte de la STL relativa a contenedores tipo string; una generalizacin
de las cadenas alfanumricas para albergar cadenas de objetos.
<typeinfo> Mecanismo de identificacin de tipos en tiempo de ejecucin.
<utility>
Parte de la STL que contiene elementos auxiliares como operadores y
pares (pairs).
<valarray> Parte de la librera numrica de la STL relativa a manejo de matrices
numricas.
<vector>
Parte de la STL relativa a los contenedores tipo vector; una
generalizacin de las matrices unidimensionales C/C++.
Es digno de mencin que aunque generalmente las libreras no aportan ninguna caracterstica al lenguaje
(se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho), una
pequea porcin de la Librera Estndar C++ si aporta caractersticas que se consideran pertenecientes a
este, de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas. En
concreto se refieren a los siguientes elementos:

Operadores new, new[], delete y delete[].


Clase type_info que corresponde al mecanismo RTTI de identificacin de tipos en tiempo de
ejecucin representado por el operador typeid.
Rutinas de inicio y terminacin.
Las excepciones estndar lanzadas por los algoritmos anteriores.

Librera Clsica C
Adems de otras nuevas, cuyo diseo e importancia cambian drsticamente la filosofa del lenguaje, C++
incluye prcticamente la totalidad de funciones de la primitiva librera estndar C. A esta librera,
mantenida por compatibilidad, se le denomina Librera clsica.
Tradicionalmente los ficheros de cabecera
nombres:
<assert.h>
<ctype.h>
<limits.h>
<locale.h>
<signal.h>
<stdarg.h>
<stdlib.h>
<string.h>

C terminan en .h, y en la librera C++ mantienen los mismos


<errno.h>
<math.h>
<stddef.h>
<time.h>

<float.h>
<setjmp.h>
<stdio.h>

Sin embargo, el Estndar de 1998 "desaconseja" el uso de los nombres antiguos, de forma que es probable
que desaparezcan totalmente en futuras revisiones, y ha dispuesto que las utilidades del Estndar C se
agrupen e 18 ficheros cuya denominacin es igual a la antigua pero eliminando el sufijo .h y aadiendo el
prefijo c. Por ejemplo, la librera <float.h> ser sustituida por <cfloat>. Con estos cambios las libreras
clsicas quedan englobadas en los siguientes ficheros:

Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

<cassert>
<ctime>
<cstdlib>
<cstdarg>
<cmath>
Ficheros
<cassert>
<cctype>
<cerrno>
<cfloat>
<ciso646>
<climits>
<clocale>
<cmath>

<csetjmp>
<csignal>
<cstdarg>
<cstddef>

<cstdio>
<cstdlib>

<cstring>
<ctime>
<cwchar>
<cwctype>

<ciso646>
<cctype>
<cwchar>
<cstring>
<cstddef>

Bibliotecas en C/C++

<csetjmp>
<climits>
<cerrno>
<cwctype>

<cstdio>
<csignal>
<clocale>
<cfloat>

Funcionalidad / funciones
.
Rutinas de clasificacin de caracteres estndar.
.
Descripcin de propiedades dependientes de la implementacin que
afectan a los tipos fundamentales.
.
Descripcin de propiedades dependientes de la implementacin que
afectan a los tipos fundamentales.
Rutinas que controlan aspectos de la internacionalizacin al estilo
clsico.
Operaciones matemticas estndar: acos, cos, fmod, modf, tan,
asin, cosh, frexp, pow, tanh, atan, exp, ldexp, sin, atan2, fabs,
log, sinh, ceil, floor, log10, sqrt.
Manejo de las rutinas de limpieza de pila al estilo clsico.
.
Lista de funciones con nmero variable de argumentos.
Descripcin de tipos. Su contenido es el mismo que <stddef.h> de la
librera C tradicional con un cambio que afecta a la definicin del
puntero nulo NULL.
E/S al estilo clsico. Algoritmos printf().
Algoritmos de clasificacin de caracteres; comienzo y terminacin.
Operaciones matemticas abs div labs ldiv srand rand(); bsearch() y
qsort(), atof(), atoi().
Utilidades para manejo de cadenas alfanumricas.
Gestin de fecha y hora.
Utilidades para manejo de cadenas alfanumricas de caracteres
anchos. Algoritmos printf() para caracteres anchos.
Rutinas de clasificacin de caracteres anchos.

Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

Componentes
Al referirnos a las libreras C/C++ utilizamos la terminologa siguiente:
RTL: Conjunto de libreras que acompaan a un compilador ("Runtime Library"), sean o no
estndar.
Librera Estndar: Conjunto de libreras cuyo contenido est definido por el Estndar C++.
Librera Clsica: Parte de la Librera Estndar correspondiente al C clsico.
La calidad de un compilador C++ viene determinada en gran medida por la calidad y cantidad de su RTL,
por su grado de adherencia al Estndar y por el grado de soporte que proporciona para la plataforma
concreta a que se destina.
A grandes rasgos la librera Estndar C++ comprende los siguientes mdulos:

La denominada Librera Estndar de Plantillas, abreviadamente STL ("Standard Templete


Library").
Librera numrica. Parte de la STL que contiene algoritmos especialmente concebidos para
computacin numrica. Por ejemplo, una clase valarray optimizada para matrices numricas y
una clase complex para manejo y representacin estandarizada de nmeros complejos (en realidad
una plantilla con especializaciones para los tipos float, double y long double).
Utilidades. Parte de la STL dedicada a elementos auxiliares tales como adaptadores y la clase
auto_ptr.
Utilidades de entrada/salida de flujos, denominadas genricamente iostreams.
Una utilidad locale para manejo de localismos1.
Una clase string para manejo estandarizado de cadenas de caracteres. En realidad es una
instanciacin (especializacin) de la plantilla basic_string para cadenas de caracteres.
Un esquema para describir de modo uniforme el entorno de ejecucin mediante la utilizacin de
una clase estndar denominada numeric_limits y especializacin para cada uno de los tipos de
datos fundamentales.
Utilidades para manejo de memoria.
Soporte para utilizacin de juegos de caracteres y signos de diversos idiomas.
Utilidades de diagnstico y manejo de errores. Incluyen manejo de excepciones y la macro assert.
Si atendemos a su funcionalidad, las utilidades ofrecidas por la Librera Estndar de C/C++ pueden
agruparse en:

Clasificacin: Clasifican caracteres ASCII, como letras, caracteres de control (no imprimibles),
Maysculas/minsculas etc. Se encuentran en la cabecera <ctype.h>.

Entradas/Salidas de Consola: Estas son las denominadas entrada/salida estndar. Por defecto se
refieren al teclado y a la pantalla (no pueden utilizarse directamente en aplicaciones de interfaz
grfica).

"Locales" son conjuntos de datos que indican preferencias culturales. Por ejemplo: formas de representar la hora, las fechas,
el "punto" decimal, etc. La utilidad locale de la Librera Estndar es la forma que tiene C++ de dar soporte a la
internacionalizacin de los programas.
Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

Conversin: Convierten caracteres y cadenas de caracteres desde formato alfabtico a numrico


de diversos tipos (float, int, long). Tambin realizan la conversin inversa: de formatos
numricos a representaciones alfabticas y de maysculas a minsculas y viceversa.

Diagnstico: Son rutinas destinadas a comprobaciones; a descubrir y corregir posibles errores.

Directorio: Rutinas para manejo de directorios y sus direcciones.

En linea (Inline): Rutinas para versiones inline de funciones. El compilador genera el cdigo
correspondiente para las versiones inline cuando se utiliza #pragma intrinsic o si se solicita
optimizacin al compilador (optimizacin de tiempo de ejecucin).

Entrada/Salida. Son rutinas que proporcionan manejo de flujos y operaciones de Entrada/Salida


a bajo nivel (de Sistema Operativo).

Manipulacin. Manejo de cadenas y bloques de memoria: copiar, comparar, convertir y buscar.

Matemticas: Para realizar clculos matemticos.

De Memoria: Proporcionan asignacin de memoria dinmica.

Miscelnea. Se agrupan aqu rutinas varias, como las que posibilitan saltos (goto) no locales y las
que manejan diferencias de tipo cultural o de lenguaje. Por ejemplo representacin de nmeros,
de moneda, formatos de fecha y hora, clasificacin de tipo alfabtico, etc.

Control de proceso. Rutinas que permiten invocar y terminar nuevos procesos desde otra rutina.

Fecha y hora. Incluyen rutinas para conversin y manipulacin de variables de medida del
tiempo (fecha y hora).

Argumentos variables. Rutinas utilizadas cuando se usan listas variables de argumentos, como
en los casos de printf(), vscanf(), etc.

Podemos crear nuevas libreras? S, de hecho muchos programadores crean sus propias
libreras y las utilizan en sus programas. Hay que tener el suficiente cuidado para crear libreras de modo
que no sean dependientes de un determinado programa. Por ejemplo, si hacemos nuestra funcin para
ordenar una matriz, debemos asegurarnos que dicha matriz pueda tener cualquier dimensin.

El Preprocesador
El preprocesamiento ocurre antes de que se compile un programa. Algunas acciones posibles son:
inclusin de otros archivos en el archivo bajo compilacin, definicin de constantes simblicas y macros,
compilacin condicional de cdigo de programa y ejecucin condicional de directivas de preprocesador.

Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

El preprocesador es algo caracterstico de C/C++, que no se suele encontrar en otros lenguajes de


programacin. El preprocesador acta sobre el programa fuente, antes de que empiece la compilacin
propiamente dicha, para realizar ciertas operaciones. En general se encarga de modificar el cdigo fuente,
segn una serie de directivas. Estas se reconocen puesto que empiezan por # y no tienen que terminar en
;, a diferencia de la mayora de las instrucciones de C/C++. Todas las directivas del preprocesador
empiezan con el signo #, y antes de una directiva de preprocesador en una lnea slo pueden aparecer
espacios en blanco.

La directiva del preprocesador #include


La directiva #include hace que en lugar de la directiva se incluya una copia del archivo especificado.
Las dos formas de la directiva son:
#include <NombredeArchivo>
#include NombredeArchivo
La diferencia entre estas dos formas radica en la localizacin donde el preprocesador buscar el archivo a
incluirse. Si el nombre del fichero est encerrado entre comillas, el preprocesador buscar el archivo a
incluirse en el mismo directorio que el archivo que se est compilando. Este mtodo se utiliza
normalmente para incluir archivos de cabecera definidos por el programador. Si el nombre del fichero
est encerrado en corchetes angulares (< y >) que se utilizan para los archivos de cabecera estndar de
biblioteca la bsqueda se llevar a cabo de forma independiente en directorios predesignados del
compilador.
La directiva #include se utiliza por lo general para incluir archivos de cabecera de biblioteca estndar
como stdio.h y stdlib.h. La directriz #include tambin se utiliza con programas formados de
varios archivos fuente que deben ser compilados juntos.

La directiva del preprocesador #define: constantes simblicas


La directiva #define crea constantes simblicas constantes representadas con smbolos y macros, es
decir operaciones definidas como smbolos. El formato de la directiva #define es:
#define identificador texto_de_ reemplazo
Cuando en un archivo aparece esta lnea, todas las subsecuentes apariciones de identificador sern de
forma automtica reemplazadas por texto_de_reemplazo, antes de la compilacin del programa.
Ejemplo:
#define PI 3.14159

Elaborado por: Prof. Armando J. Lpez L.

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

La directiva del preprocesador #define: macros


Una macro es una operacin definida en una directiva de preprocesador #define. Como en el caso de
las constantes simblicas, antes de compilarse el programa, el macro identificador se reemplaza en l
mismo por el texto_de_reemplazo. Las macros pueden ser definidas con o sin argumentos. Una macro sin
argumentos se procesa como que fuera una constante simblica. En una macro con argumentos, los
argumentos se sustituyen en el texto de reemplazo, y a continuacin la macro de expande, es decir, en el
programa el texto de reemplazo reemplaza al identificador y a la lista de argumentos.
Ejemplo:
#define PI 3.14
#define AREA_CIRCULO(x) PI*(x)*(x)
Ahora podemos usar la macro como si fuera funcin normal:
void main()
{
int a;
a = AREA_CIRCULO(3);
}
Durante la compilacin la macro se expande a:
a = 3.14 * (3) * (3)
y obtenemos el resultado esperado.
Las macros nos permiten insertar cdigo en el programa directamente, evitando la sobrecarga de invocar
o llamar a una funcin, pero conservando la legibilidad del programa. Por otra parte permite realizar
clculos durante la compilacin, en lugar de realizarlos durante la ejecucin. As, en el ejemplo anterior,
el compilador le da directamente el valor adecuado a la variable a, en lugar de insertar instrucciones
para que se evale cada vez que se use.
Es importante no olvidar los PARNTESIS alrededor de los parmetros en la definicin de la macro, de
lo contrario la expansin de parmetros puede ser incorrecta, por ejemplo:
#define AREA_CIRCULO(x) PI*x*x
void main()
{
int a,b;
a = AREA_CIRCULO(c + 3);
}
expande a:
a = 3.14 * c + 3 * c + 3
Elaborado por: Prof. Armando J. Lpez L.

10

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

que, atendiendo la precedencia de operadores, es equivalente a


a = (3.14 * c) + (3 * c) + 3
en lugar de expandir a:
a = 3.14 * (c + 3) * (c + 3)
que es lo que debera hacer.
Que son Archivos de Cabecera?
Los archivos de cabecera en C/C++ (extensin .h) contienen definiciones, tales como los tipos y nombres
de variables externas, definiciones de estructuras, constantes, macros y prototipos de funciones.
Inclusin de Archivos de Cabecera
C++, al igual que C, permite escribir programas que utilizan diversas libreras mediante la directiva
#include. C++ soporta dos formatos de directiva #include.
El procesador permite incluir el contenido de un archivo en el cdigo fuente con:
#include <stdio.h>
#include <iostream.h>
#include trabajador.h
Estas tres lneas son sustituidas lgicamente por el contenido de los archivos de cabecera stdio.h,
iostream.h y trabajador.h. Se dice entonces que se han incluido estos tres archivos. Los
caracteres < > y sirven para indicar dnde se buscan los archivos de cabecera:

<...>

...

El archivo de cabecera se busca slo en el directorio por omisin. (donde est instalado
el compilador)

El archivo de cabecera se busca sucesivamente en:


1. El directorio actual (donde se crea el proyecto o programa), y si no se encuentra ah,
2. En los directorios generales de include (una carpeta con libreras estndar en el
compilador).
Se pueden especificar nombres de camino (rutas de archivo) relativos, por ejemplo
#include<sys\stat.h>
Indica al compilador que busque stat.h en el directorio sys, que es un subdirectorio de uno de los
directorios por omisin.

Elaborado por: Prof. Armando J. Lpez L.

11

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

Principales Libreras en C/C++


C/C++ es un lenguaje completo en s mismo, las libreras ANSI que se incluyen con todos los
compiladores estn escritas en C o en ensamblador, y por lo tanto no son "imprescindibles" para escribir
programas en C.
A continuacin se detallan algunas de las principales libreras de C/C++ y sus funciones principales, el fin
de presentarlas en este documento no es memorizarlas, sino conocerlas y utilizarlas de acuerdo a lo que
necesitamos. No obstante recomiendo que las lean y sealen las ms importantes, les aseguro que muchas
de estas funciones les pueden facilitar la vida al momento de crear programas y en el desarrollo de sus
proyectos.

<math.h>
Contiene la declaracin de algunas funciones para realizar operaciones matemticas comunes sobre
valores de tipo "double".
acos
double acos (double x);
Angulo cuyo coseno es "x", en el rango [0,p] radianes.
asin
double asin (double x);
Angulo cuyo seno es "x", en el rango [-p/2, +p/2] radianes.
atan
double atan (double x);
Angulo cuya tangente es "x", en el rango [-p/2, +p/2] radianes.
atan2
double atan2 (double y, double x);
Angulo cuya tangente es "y/x", en el rango [-p, +p] radianes.
ceil
double ceil (double x);
Valor entero ms pequeo no menor que "x".
cos
double cos (double x);
Coseno de "x" (en radianes).
cosh
double cosh (double x);
Coseno hiperblico de "x".

Elaborado por: Prof. Armando J. Lpez L.

12

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

exp
double exp (double x);
Exponencial de "x", ex.
fabs
double fabs (double x);
Valor absoluto de "x", "|x|".
floor
double floor (double x);
Mayor valor entero menor que "x".
ldexp
double ldexp (double x, int exponente);
Devuelve "x*2exponente".
log
double log (double x);
Devuelve el logaritmo natural de "x".
log10
double log10 (double x);
Devuelve el logaritmo en base 10 de "x".
pow
double pow (double x, double y);
Devuelve "x" elevado a la potencia "y".
sin
double sin (double x);
Devuelve el seno de "x" (en radianes).
sinh
double sinh (double x);
Devuelve el seno hiperblico de "x".
sqrt
double sqrt (double x);
Devuelve la raz cuadrada de "x".
tan
double tan (double x);
Devuelve la tangente de "x" (en radianes).

Elaborado por: Prof. Armando J. Lpez L.

13

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

tanh
double tanh (double x);
Devuelve la tangente hiperblica de "x".
fmod
double fmod (double x, double y)
Devuelve el residuo en punto flotante de x dividido entre y.

<stdio.h>
Incluye macros y funciones para realizar operaciones de entrada y salida sobre ficheros y flujos de datos.
EOF
#define EOF <expresin constante entera -1>
Valor de retorno utilizado para sealar el fin de fichero.
NULL
#define NULL <0, 0L, o (void *)>
Constante de puntero nulo que es utilizable como una expresin de direccionamiento constante.
getchar
int getchar (void);
Lee un carcter de la terminal
gets
char *gets (char *s);
Lee caracteres por el flujo estndar de entrada ("stdin") y los almacena en el "array" que comienza en "s"
hasta que se almacena un carcter "NULL" o se active el indicador de error o el de fin de fichero. Si
almacena algn elemento, termina almacenando un carcter nulo. Devuelve "s" si almacena algn
carcter. Sustituye el carcter NULL por \0.
printf
int printf (const char *formato, ...);
Escribe texto formateado por el flujo "stdout", segn las especificaciones de "formato" y la lista de
expresiones. Devuelve el nmero de caracteres escritos o un valor negativo en caso de error.
putchar
int puchar (int c);
Escribe el carcter c en pantalla.
puts
int puts (const char *s);
Escribe los caracteres de la cadena "s" por el flujo "stdout". Escribe un carcter "NL" en lugar de nulo de
terminacin. Devuelve un valor no negativo. En caso de error, devuelve EOF.

scanf
Elaborado por: Prof. Armando J. Lpez L.

14

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

int scanf (const char *formato, ...);


Lee texto por el flujo "stdin" y lo almacena segn las especificaciones de "formato". Devuelve el nmero
de valores asignados o "EOF" si se produce error o se alcanza fin de fichero sin producirse lectura.
fopen
FILE *fopen(const char *nombre_fichero, const char *modo);
Abre el fichero de nombre nombre_fichero, lo asocia con un flujo de datos y devuelve un puntero al
mismo. Si falla la llamada, devuelve un puntero nulo. Algunos de los caracteres iniciales de modo son:
r, para abrir un fichero de texto existente para su lectura.
w, para crear un fichero de texto o abrir y truncar uno existente, para su escritura.
a, para crear un fichero de texto o abrir uno existente, para su escritura. El indicador de posicin
se coloca al final del fichero antes de cada escritura.
r+, para abrir un fichero de texto existente para su lectura y escritura.
fclose
int fclose(FILE *flujo);
Cierra el fichero asociado con ``flujo''. Devuelve 0 en caso de xito y EOF (end of file) en caso contrario.
fwrite
size_t fwrite(const void *buffer, size_t n, size_t c, FILE *flujo);
La rutina fwrite permite escribir c elementos de longitud n bytes almacenados en el buffer apuntado por
flujo.
fread
size_t fread(const void *buffer, size_t n, size_t c, FILE *flujo);
La rutina fread permite leer c elementos de longitud n bytes del fichero apuntado por flujo y los
almacena en el buffer especificado.
fgetc
int fgetc(FILE *flujo);
Lee el siguiente carcter por flujo, avanza el indicador de posicin y devuelve int. Devuelve EOF si
pone a 1 el indicador de fin de fichero o el de error.
fgets
char *fgets(char *s, int n, FILE *flujo);
Lee caracteres por flujo y los almacena en elementos sucesivos del array que comienza en s,
continuando hasta que almacene n-1 caracteres, almacene un carcter de nueva lnea o ponga a 1 los
indicadores de error o de fin de fichero. Si almacena un carcter, concluye almacenando un carcter nulo
en el siguiente elemento del array. Devuelve s si almacena algn carcter y no ha puesto a 1 el
indicador de error; en caso contrario devuelve un puntero nulo.
fputc
int fputc(int c, FILE *flujo);
Escribe el carcter c por flujo, avanza el indicador de posicin del fichero y devuelve int c . En caso de
error devuelve EOF.

Elaborado por: Prof. Armando J. Lpez L.

15

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

fputs
int fputs(const char *s, FILE *flujo);
Escribe los caracteres de la cadena s por flujo. No escribe el carcter nulo de terminacin. En caso de
xito, devuelve un valor no negativo; en caso de error devuelve EOF.
fscanf
int fscanf(FILE *flujo, const char *formato, ...);
Lee texto y convierte a la representacin interna segn el formato especificado en formato. Devuelve el
nmero de entradas emparejadas y asignadas, o EOF si no se almacenan valores antes de que se active el
indicador de error o de fin de fichero.
fprintf
int fprintf(FILE *flujo, const char *formato, ...);
Genera texto formateado, bajo el control de formato formato y escribe los caracteres generados por
flujo. Devuelve el nmero de caracteres generados o un valor negativo en caso de error.
A modo de resumen estas son las especificaciones de formato ms comunes para fprint y fscanf:
Formato Descripcin
%d

Entero con signo

%u

Entero sin signo

%c

Caracter

%s

Puntero a cadena de caracteres

fseek
int fseek( FILE *flujo, long desplazamiento, int origen);
La funcin fseek mueve el puntero de posicin del fichero correspondiente al flujo de datos apuntado por
flujo. La nueva posicin, medida en bytes, se obtiene aadiendo el nmero indicado por desplazamiento
a la posicin especificada por origen. La variable origen puede tomar tres valores:

SEEK_SET: El puntero de posicin apuntar al inicio del fichero ms el desplazamiento


SEEK_CUR: El puntero de posicin apuntar a la posicin actual del puntero de posicin del
fichero ms el desplazamiento.
SEEK_END: El puntero de posicin apuntar al fin del fichero ms el desplazamiento (deber ser
menor o igual que cero).

rename
int rename(const char *viejo, const char *nuevo);
El nombre del fichero apuntado por la cadena viejo ser conocido como el nombre apuntado por la cadena
nuevo. Cualquier intento posterior a abrir el fichero usando ese nombre fallar, al menos que se cree de
nuevo. Si el fichero nombrado por nuevo ya existe anteriormente a la llamada de rename, el
comportamiento de la funcin est definido segn la implementacin del compilador.
La funcin retorna cero si la operacin fue realizada con xito. Si falla, entonces retorna un valor
cualquiera excepto cero; en este caso el fichero sigue siendo conocido con el nombre viejo.

Elaborado por: Prof. Armando J. Lpez L.

16

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

clearerr
void clearerr(FILE *stream);
La funcin clearerr despeja los indicadores de final de fichero y de posicin de fichero para el stream
apuntado por stream al comienzo del fichero.
feof
int feof(FILE *stream);
La funcin feof comprueba el indicador de final de fichero para el stream apuntado por stream. La
funcin feof retorna un valor distinto a cero si y slo si el indicador de final de fichero est activado para
stream.
ferror
int ferror(FILE *stream);
La funcin ferror comprueba el indicador de errores para el stream apuntado por stream. La funcin ferror
retorna un valor distinto a cero si y slo si el indicador de errores est activado para stream.
fgetpos
int fgetpos(FILE *stream, fpos_t *posicion);
La funcin fgetpos guarda el valor actual del indicador de posicin de ficheros para el stream apuntado
por stream en el objeto apuntado por posicin. El valor guardado contiene informacin no especificado
servible a la funcin fsetpos para recolocar el stream a su posicin cuando se llam a la funcin fgetpos.
fsetpos
int fsetpos(FILE *stream, const fpos_t *posicion);
La funcin fsetpos activa el indicador de posicin de ficheros para el stream apuntado por stream segn el
valor del objeto apuntado por posicin, el cual ser un valor obtenido de una llamada previa a la funcin
fgetpos del mismo stream.
remove
int remove(const char *nombre);
El nombre del fichero apuntado por la cadena nombre ya no es accesible por ese nombre. Cualquier
intento posterior a abrir el fichero usando ese nombre fallar, al menos que se cree de nuevo. Si el fichero
est abierto el comportamiento de la funcin est definido segn la implementacin del compilador. Por
esta razn se ha de cerrar antes de borrar.
La funcin retorna cero si la operacin fue realizada con xito. Si falla, entonces retorna un valor
cualquiera distinto a cero.

Elaborado por: Prof. Armando J. Lpez L.

17

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

<stdlib.h>
Contiene las declaraciones de una coleccin de funciones de utilera generales y la definicin de tipos y
macros para usarlas.
NULL
#define NULL <0, 0L, o (void *) >
Produce una constante de puntero nulo que es utilizable como una expresin de direccionamiento
constante.
RAND_MAX
#define RAND_MAX <expresin constante entera 32767>
Produce el mximo valor devuelto por "rand".
abort
void abort (void);
Llama a "raise(SIGABRT)" que produce la seal de abortar, lo que causa la terminacin anormal del
programa informando al entorno operativo.
abs
int abs (int i);
Devuelve el valor absoluto de "i".
atof
double atof(const char *s);
Convierte los caracteres de la cadena s a la representacin interna de tipo double y devuelve ese valor.
atoi
int atoi (const char *s);
Convierte los caracteres de la cadena "s" a la representacin interna de tipo "int" y devuelve ese valor.
atol
long atol (const char *s);
Convierte los caracteres de la cadena "s" a la representacin interna de tipo "long" y devuelve ese
valor.
rand
int rand(void);
Calcula un nmero pseudoaleatorio "x" basado en un valor inicial (semilla) almacenado en un
objeto de datos interno de duracin esttica, altera el valor almacenado y devuelve "x". El valor
devuelto est comprendido en el intervalo [0,RAND_MAX].

Elaborado por: Prof. Armando J. Lpez L.

18

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

system
int system (const char *s);
Si "s" no es un puntero nulo, se pasa la cadena "s" para que sea ejecutada por el intrprete de comandos
del entorno operativo, y devuelve la informacin de estado proporcionada por el intrprete. Si "s" es un
puntero nulo, la funcin devuelve un valor distinto de cero. Si existe intrprete de comandos en el entorno
operativo, ejecuta el comando indicado. Esto incluye tanto los comandos del sistema operativo, como
cualquier programa que nosotros le indiquemos. Al acabar la ejecucin del comando, volver a la lnea de
cdigo situada a continuacin de la sentencia system.
En realidad system es una manera de implementar comandos del sistema desde el programa.
Sintaxis: system(comando);

Por ejemplo:
system("cls"); /* limpia la pantalla */
system("pause"); /* detiene la pantalla */
system("dir"); /* muestra el contenido del directorio especificado */
system("edit C:\archivo.txt"); /* abre el programa edit y muestra el contenido
de archivo.txt */

malloc
void *malloc(size_t longitud);
Asigna una direccin de memoria para un objeto de datos de tamao longitud y devuelve esa direccin.
calloc
void *calloc(size_t nelem, size_t longitud);
Asigna una localizacin en memoria a un objeto de datos array que contiene nelem elementos de
tamao longitud, asignando ceros a todos los bytes del array y devuelve la direccin del primer elemento
en caso de xito; en caso contrario, devuelve un puntero nulo.
realloc
void *realloc(void *p, size_t longitud);
Cambia el tamao de la memoria apuntada por p al que se indica con longitud. Asigna una direccin de
memoria para un objeto de datos de tamao longitud, copiando los valores almacenados en p. Devuelve la
nueva direccin de memoria asignada.
free
void free(void *p);
Si p no es un puntero nulo, la funcin libera la memoria asignada al objeto de datos cuya direccin es p,
en caso contrario, no hace nada. Se puede liberar la memoria asignada con calloc, malloc, realloc.
exit
void exit(int status)
Termina la ejecucin del programa y regresa status al entorno. Cuando el programa termina normal el
valor de status debe ser cero, se puede usar tambin los valores EXIT_SUCCESS y EXIT_FAILURE.

Elaborado por: Prof. Armando J. Lpez L.

19

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

<string.h>
Contiene la declaracin de una coleccin de funciones tiles para manejar cadenas y otros arrays de
caracteres.
NULL
#define NULL <0, 0L, o (void *)>
Produce una constante de puntero nulo que es utilizable como una expresin de direccionamiento
constante.
strcat
char *strcat (char *s1, const char *s2);
Copia la cadena "s2", incluyendo el nulo de terminacin, en elementos sucesivos del "array de char" que
almacena la cadena "s1", empezando en el elemento que almacena el nulo de terminacin de "s1".
Devuelve "s1".
strchr
char *strchr (const char *s, int c);
Busca el primer elemento de la cadena "s" que sea igual a "(char)c". Considera el nulo de terminacin
como parte de la cadena. En caso de xito, devuelve la direccin del elemento emparejado; en caso
contrario, devuelve un puntero nulo.
strcmp
int strcmp (const char *s1, const char *s2);
Compara los elementos de dos cadenas "s1" y "s2" hasta que encuentra elementos diferentes. Si todos son
iguales, devuelve 0. Si el elemento diferente de "s1" es mayor que el de "s2", devuelve un valor mayor
que cero; en caso contrario, devuelve un valor menor que cero.
strcpy
char *strcpy (char *s1, const char *s2);
Copia la cadena "s2", incluyendo el nulo, en el "array de char" que comienza en "s1". Devuelve "s1".
strcspn
size_t strcspn (const char *s1, const char *s2);
Busca el primer elemento "s1[i]" de la cadena "s1" que sea igual a cualquiera de los elementos de la
cadena "s2" y devuelve "i".
strlen
size_t strlen (const char *s);
Devuelve el nmero de caracteres de la cadena "s", sin incluir el nulo de terminacin.
strncat
char *strncat (char *s1, const char *s2, size_t n);
Copia "n" elementos de la cadena "s2" en la cadena "s1" a partir de su nulo de terminacin. Al final pone
el nulo de terminacin y devuelve "s1".

Elaborado por: Prof. Armando J. Lpez L.

20

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

strncmp
int strncmp (const char *s1, const char *s2, size_t n);
Compara los elementos de las cadenas "s1" y "s2" hasta que encuentra alguno diferente o hasta que se han
comparado "n" elementos. Si todos los elementos son iguales, devuelve 0. Si el elemento diferente de
"s1" es mayor que el de "s2" (tomados como "unsigned char"), devuelve un nmero positivo. En caso
contrario, devuelve un nmero negativo.
strncpy
char *strncpy (char *s1, const char *s2, size_t n);
Copia la cadena "s2", sin incluir el nulo, en la cadena "s1". Copia no ms de "n" caracteres de "s2".
Entonces almacena, cero o ms caracteres nulos si son necesarios para completar un total de "n"
caracteres. Devuelve "s1".
strpbrk
char *strpbrk (const char *s1, const char *s2);
Busca el primer elemento "s1[i]" en la cadena "s1" que sea igual a cualquiera de los elementos de "s2". Si
"s1[i]" no es el nulo de terminacin, devuelve "&s1[i]"; en caso contrario, devuelve un puntero nulo.
strrchr
char *strrchr (const char *s, int c);
Busca el ltimo elemento de la cadena "s" que es igual a "(char)c". En caso de xito, devuelve la
direccin de tal elemento; en caso contrario, devuelve un puntero nulo.
strspn
size_t strspn (const char *s1, const char *s2);
Busca el primer elemento "s1[i]" en la cadena "s1" que no sea igual a ninguno de los elementos de "s2" y
devuelve "i".
strstr
char *strstr (const char *s1, const char *s2);
Busca la primera secuencia de elementos en la cadena "s1" que se empareje con los elementos de la
cadena "s2", sin incluir su nulo. En caso de xito, devuelve la direccin del primer elemento emparejado;
en caso contrario, devuelve un puntero nulo.
strdup
char *strdup(const char *s);
Devuelve un puntero a una nueva cadena de caracteres que es un duplicado de la cadena s. La memoria
para esta cadena de caracteres se obtiene con la funcin malloc y se libera con la funcin free.
strndup
char *strndup(const char *s, size\_t n);
Devuelve un puntero a una nueva cadena de caracteres que es un duplicado de la cadena s, solo copia los
primeros n caracteres, incluyendo el nulo. La memoria para esta cadena de caracteres se obtiene con la
funcin malloc y se libera con la funcin free.

Elaborado por: Prof. Armando J. Lpez L.

21

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

<Conio.h>
clrscr
void clrscr(void);
Limpia o borra la pantalla en modo texto y coloca el cursor en la esquina superior izquierda (en la
posicin 1,1).
clreol
void clreol(void);
Borra desde la posicin actual del cursor hasta el final de lnea, sin mover el cursor.
delline
void delline(void);
Elimina todo el rengln actual de la posicin del cursor, moviendo todo lo que est abajo de l un rengln
hacia arriba. El cursor no se mueve.
insline
void insline(void);
Inserta una nueva lnea en la posicin actual del cursor, moviendo todo un rengln hacia abajo. El cursor
no se mueve. Se pierde la ltima lnea.
gotoxy
void gotoxy(int x, int y);
Mueve el cursor a la posicin dada por x,y (coordenada horizontal y vertical respectivamente).
Por default la pantalla es de 80 columnas por 25 renglones, donde la esquina superior izquierda es la
posicin: (x=1,y=1), y la esquina inferior derecha la coordenada: (80,25).
wherex
wherey
int wherex(void);
int wherey(void);
Regresan la x-coordenada y la y-coordenada de la posicin actual del cursor respectivamente.
Si la pantalla de texto tiene el tamao por default de 80 columnas por 25 renglones, wherex() regresa un
nmero comprendido entre 1 y 80, y wherey() entre 1 y 25.
textcolor
void textcolor(int nuevocolor);
Cambia el color del texto. Todos los caracteres que se muestren despus de una llamada a esta funcin
aparecern con dicho color en pantalla. El texto que fue mostrado antes llamar a esta funcin conservar
su color original. Los colores disponibles tanto para textcolor y textbackground son los mismos que para
su predecesores (de 0 a 15):
0 BLACK (negro)
1 BLUE (azul marino)
2 GREEN (verde perico)
3 CYAN (verde claro)
4 RED (rojo)
Elaborado por: Prof. Armando J. Lpez L.

22

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

5 MAGENTA (morado o violeta)


6 BROWN (caf)
7 LIGHTGRAY (gris claro)
8 DARKGRAY (gris oscuro)
9 LIGHTBLUE (azul marino claro)
10 LIGHTGREEN (verde claro)
11 LIGHTCYAN (azul claro)
12 LIGHTRED (rojo claro)
13 LIGHTMAGENTA (rosa mexicano)
14 YELLOW (amarillo)
15 WHITE (blanco)
textbackground
void textbackground(int nuevocolor);
Cambia el color de fondo del texto. Esta funcin cambia slo el color de fondo de los caracteres. Para
cambiar el fondo a toda la pantalla hay que llamar a textbackground y luego a system(cls) para borrar la
pantalla y aparezca con el nuevo color. Para este propsito no usar clrscr() para borrar la pantalla, pues no
toma en cuenta el nuevo valor del color de fondo.
_setcursortype
void _setcursortype(int tipo);
Cambia la apariencia del cursor de texto (no del mouse).
Coloca el tipo de cursor a uno de los siguientes:
_NORMALCURSOR (como caracter de subrayado)
_NOCURSOR (oculta el cursor)
_SOLIDCURSOR (cursor slido)

<dos.h >
delay
void delay(int miliseg);
Pausa la ejecucin del programa un determinado tiempo dado por su argumento en milisegundos.
(1 seg=1000 miliseg).
sleep
void sleep(int seg);
Pausa la ejecucin del programa un determinado tiempo dado por su argumento en segundos.

Elaborado por: Prof. Armando J. Lpez L.

23

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

<ctype.h>
tolower
int tolower(int ch);
Convierte un carcter a minscula.
Valor de retorno: ch debe estar en el rango 0 a 255, y si est entre A y Z lo convierte a su equivalente en
el rango a - z, el resto de los valores no son modificados. El valor de retorno es el valor convertido si ch
era una mayscula, o el valor original en caso contrario.
Nota: los caracteres en acentuados, o con diresis, en mayscula y la no sufren modificaciones.
toupper
int toupper(int ch);
Convierte un carcter, en un parmetro entero ch, a mayscula.
Valor de retorno: ch debe estar en el rango 0 a 255, y si est entre a y z lo convierte a su equivalente en el
rango A - Z, el resto de los valores no son modificados. El valor de retorno es el valor convertido si ch era
una minscula, o el valor original en caso contrario.
Nota: los caracteres en acentuados, o con diresis, en minscula y la no sufren modificaciones.
isalnum
int isalnum(int c);
Comprueba sin un carcter es alfanumrico. Isalnum es una macro que verifica el entero c pertenece al
rango de letras (A - Z o a - z) o al de dgitos (0 - 9), por defecto.
Valor de retorno: El valor de retorno ser no nulo si c es una letra o un nmero, y cero en caso contrario.
isdigit
int isdigit(int c);
Comprueba sin un carcter es un dgito decimal. Isdigit es una macro que verifica si el entero c pertenece
al rango de cacteres de dgitos decimales, el rango es de ('0' - '9').
Valor de retorno: El valor de retorno ser no nulo si c es un dgito decimal.
ispunct
int ispunct(int c);
Comprueba sin un carcter es correspondiente a un signo de puntuacin. Ispunct es una macro que
verifica si el entero c pertenece al rango de caracteres de los signos de puntuacin, que por defecto son
todos menos los alfanumricos y el blanco ' '.
Valor de retorno: El valor de retorno ser no nulo si c es un signo e puntuacin.
isalpha
int isalpha(int c);
Comprueba sin un carcter es alfabtico. Isalpha es una macro que verifica si el entero c pertenece al
rango de letras (A - Z o a - z), por defecto.
Valor de retorno: El valor de retorno ser no nulo si c es una letra y cero en caso contrario.

Elaborado por: Prof. Armando J. Lpez L.

24

UCA | Ingeniera en Sistemas de Informacin

Bibliotecas en C/C++

islower
int islower(int c);
Comprueba sin un carcter es de tipo minscula. Islower es una macro que verifica si el entero c
pertenece al rango de caracteres de letras minsculas, que por defecto son los que estn en el rango a - z.
Valor de retorno: El valor de retorno ser no nulo si c es un carcter en minscula.
isupper
int isupper(int c);
Comprueba sin un carcter es de tipo mayscula. Islower es una macro que verifica si el entero c
pertenece al rango de caracteres de letras maysculas, que por defecto son los que estn en el rango A - Z.
Valor de retorno: El valor de retorno ser no nulo si c es un carcter en mayscula.
isspace
int isspace(int c);
Comprueba sin un carcter es de tipo espacio. Isspace es una macro que verifica si el entero c pertenece al
grupo de caracteres de espacio, ' ', tab, retorno de carro, nueva lnea, tabulador vertical o salto de pgina.
Valor de retorno: El valor de retorno ser no nulo si c es un carcter de tipo espacio.

Elaborado por: Prof. Armando J. Lpez L.

25

S-ar putea să vă placă și