En esta biblioteca 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; system("pause"); 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 13 y
23. 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 biblioteca "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".
© Septiembre de 2000, Salvador Pozo, salvador@conclase.net