Cátedra I Informática Autor I Carlos Bartó UNIDAD 4-2: EXCEPCIONES y CADENAS DE CARACTERES (STRINGS) 1 1. Manejo de excepciones . • Sintaxis general del código para lanzar y atrapar una excepción: try { // Una o más instrucciones, // al menos una de las cuales debería // ser capaz de lanzar una excepción; } catch(tipo-de-datos-de-excepcion nombre-parámetro) { // Una o más instrucciones } El lanzamiento de una excepción requiere de la expresión: throw valor; Programa: PGM7-01.CPP Programa: PGM7-02.CPP EJERCICIOS 7.1 página 391 2. La clase string. • Requiere la inclusion del archivo de encabezado <string> • Funciones de la clase string: Constructor Descripcion Ejemplo string nombObjeto = Crea e inicializa un valor objeto de cadena string cad1 = “Hola”; string cad2 = cad1; string cad3 = cad1 + cad2, string nombObjeto(valCad) Idem anterior string cad1(“Hola”); string cad2 (cad1 + ” hoy”); string nombObjeto(cad,n) Crea e inicializa una cadena con una subcadena de cad iniciando en pos n string cad1(cad2,5) string nombObjeto(cad,n,p) Idem anterior string cad1(cad2,5,2); conteniendo p chars string nombObjeto(n, Crea objeto cadena con string cad1(5,'*'); char) n copias de char string nombObjeto Crea objeto cadena tring mensaje; vacia. (length = 0) 1 Cátedra I Informática Autor I Carlos Bartó 2 Programa: PGM7-03.CPP • Entrada y salida de string cout , cin, getline(cin, objetoCadena). Precaución con carácter ENTER Programa: PGM7-04.CPP Programa: PGM7-05.CPP • Procesamiento de cadenas (requieren #include <string>) Método/Operación Descripción Ejemplo int length() longitud cad.length(); int size() Idem ant. cad.size(); at(int indice) Carácter en el indice cad.at(4); int compare(cadena) Compara dos cadenas (< 0, =0, >0) cad1.compare(cad2); c_str() Devuelve cad leng.C(null) cad1.c_str(); Bool empty true si vacía cad.empty(); erase(ind) Elimina los caracteres desde ind cad.erase(4); erase(ind,n) Elimina n caracteres desde ind cad.erase(4,2); int find(cadena) Indice de la 1a ocurrencia cad1.find(cad2); int find(cadena, indice) Indice de la 1a ocurrencia a partir de indice cad1.find(cad2,6); int find_first_of(cadena, indice) Indice de la 1a ocurrencia de cualquier carácter en cadena iniciando en ind cad1.find_first_of(cad2, 6); void insert(ind, cadena) Inserta en cadena comenzando en ind cad1.insert(3,cad2); void replace(ind,n,cadena) Elimina n caracteres comenzando en ind y los reemplaza cad1.replace(2,4,cad2); String substr(ind,n) Subcadena extraia a partir de ind con n chars Cad2= cad1.substr(0,3); 2 Cátedra I Informática Autor I Carlos Bartó 3 Método/Operación Descripción Ejemplo Void swap(cadena) Intercambia caracteres cad1.swap(cad2); [indice] Carácter en la posición del indice cad[2]; “=” Asignación cad1 = cad2; “+” Concatena dos cadenas cad1 + cad2; “+=” Asigna concatenando cad1 += cad2; “==, !=, < , <=, >, >=” Operadores relacionales cad1 == cad2; cad1 <= cad2; Programa: Programa: Programa: Programa: PGM7-06.CPP PGM7-07.CPP PGM7-08.CPP PGM7-09.CPP EJERCICIOS 7.2 página 409 3. Métodos de manipulación de caracteres. • Transmisión y uso de parámetros referencia tipo-de-datos& nombre-de-referencia void valnuevo(double&, double&); // prototipo void valnuevo(double& num1, double& num2) Programa: PGM6-08.CPP Programa: PGM6-09.CPP Programa: PGM6-10.CPP EJERCICIOS 6.3 página 340 4. Aplicaciones. • Conversón de coordenadas rectangulares a polares: Programa: Programa: Programa: Programa: • PGM6-11.CPP PGM6-12.CPP PGM6-13.CPP PGM6-14.CPP Simulación: Programa: PGM6-15.CPP 3 Cátedra I Informática Autor I Carlos Bartó • 4 Escalamiento: Programa: PGM6-16.CPP EJERCICIOS 6.4 página 356 5. Alcance de una variable. • Variables globales y locales: Programa: PGM4-17.CPP • Operador de resolución de alcance: Programa: PGM4-18.CPP Programa: PGM4-18A.CPP EJERCICIOS 6.5 página 366 6. Clases de almacenamiento de variables. • Clases de almacenamiento de variables locales. auto static register Programa: PGM6-19.CPP Programa: PGM6-20.CPP • Clases de almacenamiento de variables globales (no pueden ser register). static extern extern se usa en el archivo donde se quiere extender (a partir de su declaración) el alcance que poseía originalmente EJERCICIOS 6.6 página 377 4