En esta librería se incluyen rutinas de conversión entre tipos. Nos permiten convertir cadenas de caracteres a números, números a cadenas de caracteres, números con decimales a números enteros, etc.
Convierte una cadena de caracteres a un entero. Puede leerse como conversión de "ASCII to Integer".
Sintaxis:
int atoi(const char *s);
La cadena puede tener los siguientes elementos:
El formato de la cadena de entrada sería: [ws] [sn] [ddd]
El primer carácter no reconocido finaliza el proceso de conversión, no se comprueba el desbordamiento, es decir si el número cabe en un "int". Si no cabe, el resultado queda indefinido.
Valor de retorno:
"atoi" devuelve el valor convertido de la cadena de entrada. Si la cadena no puede ser convertida a un número "int", "atoi" vuelve con 0.
Al mismo grupo pertenecen las funciones "atol" y "atof", que devuelven valores "long int" y "float". Se verán en detalle en otros capítulos.
Ejecuta un comando del sistema o un programa externo almacenado en disco. Esta función nos será muy útil para detener el programa antes de que termine.
Si compilas los ejemplos, ejercicios o tus propios programas usando un compilador de Windows para consola, como Dev-C++, habrás notado que la consola se cierra cuando el programa termina, antes de que puedas ver los resultados del programa, para evitar eso podemos añadir una llamada a la función system para ejecutar el comando del sistema "pause", que detiene la ejecución hasta que se pulse una tecla. Por ejemplo:
#include <stdlib.h> #include <iostream> using namespace std; int main() { cout << "Hola, mundo." << endl; cin.get(); return 0; }
De este modo el programa se detiene antes de devolver el control y de que se cierre la consola.
Nota: en este capítulo se menciona el concepto
macro.
Una macro es una fórmula definida para el preprocesador. Es un
concepto que se estudia en los capítulos 14 y 25. Consiste, básicamente,
en una fórmula que se sustituye por su valor antes de compilar un programa, de
eso se encarga el preprocesador.
La diferencia principal es que las funciones
se invocan, y la ejecución del programa continúa en la dirección de memoria de
la función, cuando ésta termina, retorna y la ejecución continúa en el programa
que invocó a la función. Con las macros no es así, el código de la macro se
inserta por el preprocesador cada vez que es invocada y se compila junto con el
resto del programa, eso elimina los saltos, y aumenta el código.
De todos
modos, no te preocupes demasiado por estos conceptos, el curso está diseñado
para tener una progresión más o menos lineal y estos temas se tratan con detalle
más adelante.
Devuelve el valor absoluto de un entero.
Sintaxis:
int abs(int x);
"abs" devuelve el valor absoluto del valor entero de entrada, x. Si se llama a "abs" cuando se ha incluido la librería "stdlib.h", se la trata como una macro que se expandirá. Si se quiere usar la función "abs" en lugar de su macro, hay que incluir la línea:
#undef abs
en el programa, después de la línea:
#include <stdlib.h>
Esta función puede usarse con "bcd" y con "complejos".
Valor de retorno:
Esta función devuelve un valor entre 0 y el INT_MAX, salvo que el valor de entrada sea INT_MIN, en cuyo caso devolverá INT_MAX. Los valores de INT_MAX e INT_MIN están definidos en el fichero de cabecera "limit.h".
Generador de números aleatorios.
Sintaxis:
int rand(void);
La función "rand" devuelve un número aleatorio entre 0 y RAND_MAX. La constante RAND_MAX está definida en stdlib.h.
Valor de retorno:
"rand" devuelve un número entre 0 y RAND_MAX.
Inicializa el generador de números aleatorios.
Sintaxis:
void srand(unsigned semilla);
La función "srand" sirve para cambiar el origen del generador de números aleatorios.
Valor de retorno:
"srand" no devuelve ningún valor.
© Septiembre de 2000 Salvador Pozo, salvador@conclase.net