Include <Cstdlib>

Include <Cstdlib>

<p>EJEMPLO 9.1 </p><p>#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char S[]="Lucas";// cadena estática inicializada a 5 caracteres y nulo char S1[12] = " nombre:"; </p><p> cout << S1 << endl << endl;</p><p> for (int i = 0; i < 6; i++) cout << " S[" << i << "] = " << S[i] << "\n"; system("PAUSE"); return EXIT_SUCCESS; }</p><p>En el resultado de ejecución aparece S[5] = carácter nulo que es no imprimible:</p><p>EJEMPLO 9.2 </p><p>#include <cstdlib> #include <iostream> using namespace std;</p><p> int main(int argc, char *argv[]) { char Ejemplo[31]; // Definir array de caracteres</p><p> cout << " introduzca frase \n "; cin.getline(Ejemplo,30); // lectura de cadena completa cout << "\t\"" << Ejemplo << "\"\n"; cout << " introduzca otra frase \n "; cin >> Ejemplo; // lectura de palabra hasta encontrar blanco cout << "\t\"" << Ejemplo << "\"\n"; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Resultado de ejecución:</p><p>1 EJEMPLO 9.3 #include <cstdlib> #include <iostream> using namespace std; struct registro { char Nombre_y_apellidos[51]; char Calle[33], Poblacion[28]; char Provincia[28], Pais[21], Codigo_Postal[8]; }r;</p><p> void Leer_registro(registro &r) { cout << " Lectura de datos \n"; cout<<" Nombre y apellidos: ";cin.getline(r.Nombre_y_apellidos, 50); cout << " Calle: "; cin.getline(r.Calle, 32); cout << " Poblacion: "; cin.getline(r.Poblacion,27); cout << " Provincia: "; cin.getline(r.Provincia, 27); cout << " Pais: "; cin.getline(r.Pais, 20); cout << " Codigo Postal: "; cin.getline(r.Codigo_Postal, 7); } void Escribir_registro(registro r) { cout << " \n Visualizacion de datos \n \n"; cout << " " << r.Nombre_y_apellidos << endl; cout << " " << r.Calle << endl;; cout << " " << r.Poblacion << endl; cout << " " << r.Provincia << endl; cout << " " << r.Pais << endl; cout << " " << r.Codigo_Postal << endl; } int main(int argc, char *argv[]) { Leer_registro(r); Escribir_registro(r); system("PAUSE"); return EXIT_SUCCESS; }</p><p>Resultados de ejecución:</p><p>.</p><p>2 EJEMPLO 9.4. #include <cstdlib> #include <iostream> using namespace std; bool esvocal(char ch) { ch= toupper(ch); return ( ch == 'A' || ch == 'E' ||ch == 'I' ||ch == 'O' ||ch == 'U'); } int main(int argc, char *argv[]) { char ch; int cuenta = 0;</p><p> while (cin.get(ch)) if (esvocal(ch)) cuenta++; cout << " numero de vocales leidas "<< cuenta << "\n"; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Un resultado de ejecución es:</p><p>EJEMPLO 9.5</p><p>#include <cstdlib> #include <iostream> using namespace std; bool esvocal(char ch) { ch= toupper(ch); return ( ch == 'A' || ch == 'E' ||ch == 'I' ||ch == 'O' ||ch == 'U'); } int main(int argc, char *argv[]) { char ch;</p><p> while (cin.get(ch)) { if (esvocal(ch)) // es una vocal cout.put(tolower(ch)); // escribe en minúscula else if(isalpha(ch)) // es letra cout.put(toupper(ch)); // escribe minúscula else cout.put(ch); // escribe como se lee } system("PAUSE"); return EXIT_SUCCESS; } Ejemplo de ejecución:</p><p>3 .</p><p>EJEMPLO 9.6 #include <cstdlib> #include <iostream> using namespace std; float siguienteReal() { // busca el primer caracter dígito y lee el número real char ch; float r;</p><p> while (cin.get(ch)) if (ch >= '0' && ch <= '9') { cin.putback(ch); // restaura cin >> r; // lee dato real break; } return r; } int main(int argc, char *argv[]) { float r1, r2; char ch;</p><p> cout <<"intoduzca linea con dos numeros a sumar control+z fin \n"; while(cin.get(ch)) { cin.putback(ch); // restaura para leer reales r1 = siguienteReal(), r2 = siguienteReal(); cin.ignore(80,'\n'); // salta hasta fin línea cout << r1 << " + " << r2 << " = " << r1 + r2 << endl; } system("PAUSE"); return EXIT_SUCCESS; }</p><p>EJEMPLO 9.7 void getline2 (char* cadena, int n) { char c, *p = cadena; int i = 0;</p><p> while (( cin.get(c)) && (c != '\n') && (i < n)) { *p++ = c; i++;</p><p>4 } *p = '\0'; } void getline2 (char* cadena, int n, char ch) { char c, *p = cadena; int i = 0;</p><p> while (( cin.get(c)) && (c != ch) && (i < n)) { *p++ = c; i++; } *p = '\0'; }</p><p>EJEMPLO 9.8 char * strcpya( char * destino, const char* origen) { int lon = strlen(origen); // se calcula longitud</p><p> destino = new char [lon + 1]; // se reserva memoria for (int i = 0; i < lon; i++) //se copia carácter a carácter destino[i]= origen[i]; destino[lon] = '\0'; // se añade fin decadena return destino; // retorno de la copia } </p><p>EJEMPLO 9.9 </p><p>#include <cstdlib> #include <iostream> using namespace std; #define max 60 int main(int argc, char *argv[]) { char texto[max][81]; int i = 0, j, lon, int longmax = 0, posmax, longmin = 81, posmin; char linea [80];</p><p> while (i < max) { cin.getline(linea, 80); lon = strlen(linea); if ( lon == 0) break; if (lon < longmin) { posmin = i; longmin = strlen(linea); } if (lon > longmax) { posmax = i; longmax = strlen (linea); } strcpy (texto [i], linea);</p><p>5 i++; }</p><p> strcpy (linea, texto[posmin]); strcpy (texto[posmin], texto[posmax]); strcpy (texto[posmax], linea); cout << " texto intercambiado \n"; for (j = 0; j < i ; j++) cout << texto[j] << endl;</p><p> system("PAUSE"); return EXIT_SUCCESS; }</p><p>EJEMPLO 9.10 </p><p>#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char buffer [80], *ptr; int kilos, suma = 0, sumalinea;</p><p> cout << " Introduzca el texto linea a linea. \n"; for (; ; ) { sumalinea = 0; cin.getline(buffer, 80); if (strlen(buffer) == 0) break; // salida del bucle ptr = strtok(buffer, " "); while (ptr) { if ((kilos = atoi (ptr)) != 0) sumalinea += kilos; ptr = strtok(NULL, " "); } cout << " La suma de kg en linea es: " << sumalinea << endl; suma += sumalinea; } cout << " La suma de kg de todas las lineas es: " << suma << endl; system("PAUSE"); }</p><p>Un resultado de ejecución es el siguiente:</p><p>EJEMPLO 9.11 #include <cstdlib> #include <iostream> using namespace std;</p><p>6 int main(int argc, char *argv[]) { char *cadena= " 32 111"; char **pcadena = new(char*) ; long numero1; unsigned long numero2;</p><p> numero1 = strtol (cadena,pcadena,4); // extrae numero en base 4 cout << " numero = "<< numero1 << endl; cout << " cadena actual "<< *pcadena << endl; cadena = *pcadena; numero2 = strtoul (cadena, pcadena,2); // extrae numero en base 2 cout << " n2 = "<< numero2 << endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Resultado de ejecución:</p><p>EJERCICIO 9.1 </p><p>Todas las declaraciones realizan inicializaciones de array de caracteres a cadenas, excepto la declaración correspondiente a var_cad1, que inicializa un array de caracteres, simplemente, ya que no termina en el carácter nulo '\0'. Son equivalentes las inicializaciones de las variables var_cad0 y var_cad2 entre sí, ya que la primera se inicializa a una constante cadena, y la segunda se inicializa cada posición del array a los mismos caracteres terminando en el carácter nulo. También son equivalentes las inicializaciones de var_cad3 y var_cad4, a pesar de que la segunda inicialización es de un array indeterminado.</p><p>EJERCICIO 9.2 #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char var_cad[]= "Hola";</p><p> strcat(var_cad, " y adios"); cout << var_cad<< endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>EJERCICIO 9.3 </p><p>#include <cstdlib> #include <iostream> using namespace std; typedef char cadena80[80];</p><p>7 int Longitud(cadena80 &cad) { int contador = 0;</p><p> while (cad[contador] != '\0') contador ++; return contador; } int main(int argc, char *argv[]) { cadena80 cad = "C++ es mejor que C";</p><p> cout << "longtud de " << cad<< " = " << Longitud(cad) << endl;</p><p> system("PAUSE"); return EXIT_SUCCESS; }</p><p>EJERCICIO 9.4 </p><p>La variable c1 es una variable puntero que apunta a un puntero de caracteres. La variable c2 es un array de 10 punteros a caracteres. La variable c3 es una matriz con espacio para 210 punteros a caracteres accesibles según un arreglo de 10 filas de 21 elementos cada una de ellas.</p><p>EJERCICIO 9.5 int main(int argc, char *argv[]) { char s1[81], s2[81];</p><p> cout << " introduzca cadena :"; cin.getline(s1,80); cout << " introduzca cadena :"; cin.getline(s2,80); cout << " Antes de strcat(s1, s2): \n"; cout<< " s1 = \"" << s1 << "\", longitud = "<<strlen(s1) << endl; cout<< " s2 = \"" << s2 << "\", longitud = "<<strlen(s2) << endl; strcat(s1, s2); cout << " Despues de strcat(s1, s2):\n"; cout<<" s1 = \"" << s1 << "\", longitud = " << strlen(s1) << endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Resultado de ejecución:</p><p>EJERCICIO 9.6 include <cstdlib> #include <iostream> using namespace std;</p><p>8 char asignatura [N][21], codigo [N][7]; void leer(char asignatura[][21], char codigo[][7], int n) { for (int i = 0; i<= n; i++) { cout << " Escriba el nombre de la asignatura: " << i + 1 << " "; cin.getline (asignatura [i],20); cout << " Escriba el código de la asignatura: " << i + 1 << " "; cin.getline(codigo [i], 6); } }</p><p>#define N 50 int main(int argc, char *argv[]) { ..... system("PAUSE"); return EXIT_SUCCESS; }</p><p>EJERCICIO 9.7 void escribir(char asignatura[][21], char codigo[][7], int n) { for (int i = 0; i<= n; i++) { cout<< " nombre de la asignatura: " <<i + 1<<asignatura[i]<< endl; cout << " código de la asignatura: " << i << codigo[i]<< endl; } } void modificar(char asignatura[][21], char codigo[][7], int i) { cout << " Escriba nuevo nombre de asignatura: " << i + 1 << " "; cin.getline (asignatura [i],20); cout << " Escriba nuevo código de asignatura: " << i + 1 << " "; cin.getline(codigo [i], 6); } EJERCICIO 9.8 </p><p>#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char cadena[41] ;</p><p> cout << "deme cadena "; cin.getline(cadena,40); strrev(cadena); cout << "Cadena invertida \n" << cadena << endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>PROBLEMA 9.1 include <cstdlib></p><p>9 #include <iostream> using namespace std; long int Hexadecimal_a_enterolargo(char Hexa[]) { //cambia el número escrito en 16 como cadena de caracteres a base //10 como entero largo int Valordigito, c = 0, base = 16; long int numero = 0;</p><p> for (; Hexa[c]; c++)//mientras quede dígito en número en hexadecimal { if ((Hexa[c] >= '0') && (Hexa[c] <= '9')) //es dígito Valordigito = Hexa[c]-'0'; else + 10; if ((0 <= Valordigito) && //es carácter Valordigito = Hexa[c] -'A' (Valordigito < base)) //comprobación de dato numero = numero * base + Valordigito; else cout <<" error \n"; //no está bien escrito en la base 16 } return numero; } int main(int argc, char *argv[]) { char Hexa[]= "12A"; cout << Hexadecimal_a_enterolargo( Hexa) << endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Resultado de ejecución:</p><p>PROBLEMA 9.2 </p><p>#include <cstdlib> #include <iostream> using namespace std; typedef char linea[81] ; linea *text; void Leer_Texto (linea tex[], int n) { for (int i = 0; i < n; i++) cin.getline(tex[i],80); } void Escribir_Texto (linea tex[], int n) { for (int i = 0; i < n; i++) cout << tex[i] << endl; } int main(int argc, char *argv[]) { </p><p>10 cout << " introduzca texto\n"; text = new linea[4]; Leer_Texto( text, 4); cout << " Texto leido texto\n"; Escribir_Texto(text,4); system("PAUSE"); return EXIT_SUCCESS; }</p><p>PROBLEMA 9.3 </p><p>#include <cstdlib> #include <iostream> #define max 100 using namespace std; int main(int argc, char *argv[])</p><p>{ char *TextoEntrada[max]; char linea [81], *ptr; int kilos, suma = 0;</p><p> cout << " Introduzca el TextoEntrada linea a linea. \n"; for (int i = 0; i < max ; i++) { cin.getline(linea, 80); TextoEntrada[i] = new char[strlen(linea)+1];//espacio para linea strcpy(TextoEntrada[1], linea); // copia linea en texto ptr = strtok(linea, " "); // busca prime blanco while (ptr) { kilos = atoi (p ptr = strtok(NULL tr); // convienrte a entero suma += kilos;, " "); // búsqueda de siguiente } } cout << " texto leido \n"; for (int i = 0; i < max ; i++) // visualización del texto. cout << TextoEntrada[i]<< endl; cout << " La suma de kg de todas las lineas es: " << suma << endl; system("PAUSE"); }</p><p>PROBLEMA 9.4 void cuentaLetras ( char* cadena, int &voc, int &con, int &dig) { char * p = cadena;</p><p> voc = con = dig = 0; while (*p != '\0') { char ch = tolower(*p); // convierte en letra mayúscula if (isupper(ch)) // si es letra mayúscula switch (ch) { case 'A': case 'E': case 'I': case 'O': case 'U': voc ++;</p><p>11 break; default : con ++; } else if (isdigit(ch)) // es un dígito dig++; p++; } }</p><p>PROBLEMA 9.5 </p><p>#include <cstdlib> #include <iostream> using namespace std; char * tolowercad(char cad[81]) { // pasa todas las letras a minúsculas for(int i = 0; i < strlen(cad); i++) cad[i] = tolower(cad[i]); return cad; } int main(int argc, char *argv[]) { char *cad1, *cad2, buffer[81]; int letras1[28], letras2[28], i; bool sw = true;</p><p> cout << " introduzca cadena: "; cin.getline(buffer,80); cad1 = tolowercad(buffer); cout << " introduzca cadena: "; cin.getline(buffer,80); cad2 = tolowercad(buffer); for (i = 0; i < 28 ; i++) letras1[i] = letras2[i] = 0; for (i = 0; i < strlen(cad1); i++) if (islower (cad1[i])) letras1[cad1[i] - 'a']++; for (i = 0; i < strlen(cad1); i++) if (islower (cad1[i])) letras2[cad1[i] - 'a']++; for (i = 0; (i < 28) && sw; i++) if (letras1[i] != letras2[i]) sw = false; if(sw) cout << "Las cadenas introducidas son anagramas. \n"; else cout << "Las cadenas introducidas no son anagramas. \n"; system("PAUSE"); return EXIT_SUCCESS; }</p><p>PROBLEMA 9.6 </p><p>#include <cstdlib> #include <iostream> using namespace std; void saltablanco( char *cad, int &i)</p><p>12 { while (cad[i] == ' ' && i <= strlen(cad))//busca carácter<>de blanco i++; } void saltapalabra(char *cad, int &i) { while (cad[i] != ' ' && i <= strlen(cad)) //busca carácter blanco i++; } int main(int argc, char *argv[]) { char cad[81]; int i, n, total = 0; </p><p> cout << " Introduzca lineas, separando las palabras con blancos.\n"; cin.getline (cad,80); while ((*cad) != NULL) // hay línea { i = n = 0; // comienza el tratamiento de una nueva línea saltablanco(cad,i); for (; i <= strlen(cad); i++) { saltapalabra(cad,i); saltablanco(cad,i); n++; // una palabra más } cout << " \t\t\"" <<cad << "\" :" << n << endl; cin.getline(cad,80); total += n; // acumula palabras de la línea. } cout << " total de palabras del texto " << total << endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Un resultado de ejecución es el siguiente:</p><p>PROBLEMA 9.7 </p><p>#include <cstdlib> #include <iostream> using namespace std; #define max 30 int main(int argc, char *argv[]) { char * arraydelineas[30], linea [81], clave[16] ,*punteroL; int i, numero_de_veces = 0;</p><p> cout << " Introduzca la palabra clave a buscar: " << endl; cint.getline(clave,15);</p><p>13 for (i = 0; i < max ; i++) { cin.getline(linea, 80); if (strlen(linea) == 0)break; // fin de datos arraydelineas [i] = new char [strlen (linea ) +1]; strcpy (arraydelineas [i], linea); punteroL = arraydelineas[i]; while ((punteroL = strstr (punteroL, clave)) != NULL) { punteroL++; // avanza una posición el puntero numero_de_veces++; } }</p><p> cout<< "La palabra clave" << clave << " aparece "; cout << numero_de_veces << " en el text.\n"; system("PAUSE"); return EXIT_SUCCESS; }</p><p>PROBLEMA 9.8 </p><p>#include <cstdlib> #include <iostream> #define max 40 using namespace std; void leer_texto(char* arraydelineas[],int ll[][2],int &i) { i = 0; char linea[81]; cout << " Introduzca el texto linea a linea. \n"; while (i < max ) { cin.getline(linea, 80); if (strlen(linea)==0) break; arraydelineas [i] = new char [strlen (linea ) +1]; strcpy (arraydelineas[i], linea); ll [i][0] = strlen (linea ); ll [i][1] = i; i++; } }</p><p> void escribir_texto(char* arraydelineas[], int ll[][2], int n) { for ( int i = 0; i < n ; i++) cout << arraydelineas[ ll[i][1]] << endl;//indexación salida } </p><p> void ordenar (int ll[][2], int n) { //método de ordenación por burbuja int aux;</p><p> for (int i = 0; i < n - 1; i++) for (int j = 0; j < n - i - 1; j++) if (ll[j][0] > ll[j + 1][0]) {</p><p>14 aux = ll[j][0]; ll[j][0]=ll[j + 1][0]; ll[j + 1][0]= aux; aux = ll[j][1]; ll[j][1]=ll[j + 1][1]; ll[j + 1][1]= aux; } } </p><p> int main(int argc, char *argv[]) { char* arraydelineas[max]; int longitudlineas[max][2], i;</p><p> leer_texto(arraydelineas,longitudlineas, i); ordenar (longitudlineas, i); cout << " texto leido ordenado por longitud de lineas \n"; escribir_texto(arraydelineas, longitudlineas, i); system("PAUSE"); return EXIT_SUCCESS; }</p><p>Resultado de una posible ejecución</p><p>PROBLEMA 9.9 </p><p>#include <cstdlib> #include <iostream> #define max 100 using namespace std; int main(int argc, char *argv[]) { char* texto[50], buffer [81], clave[16], *ptr; int i = 0, j = 0;</p><p> cout << " Introduzca la palabra clave a buscar: "; cin.getline(clave,15);</p><p> while (i < 50 ) { cin.getline(buffer,80); ptr = buffer; if (strstr (ptr, clave) == NULL) //no está en línea almacenarla { texto [j] = new char[strlen (buffer ) +1];</p><p>15 strcpy (texto [j], buffer); j++; } i++; } cout << " texto con lineas elminadas "<< endl; for (i = 0; I < j; i++) cout << texto [i] << endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>PROBLEMA 9.10 </p><p>#include <cstdlib> #include <iostream> using namespace std; char * reverse (char * cadena) { char* rcadena; int i, lon;</p><p> lon = strlen(cadena); rcadena = new char[lon+1]; for(int i = 0; i < lon; i++) rcadena[lon - i - 1] = cadena[i]; rcadena[lon] = '\0'; return rcadena; } int main(int argc, char *argv[]) { cout << "ABCD"<< " invertida "<< reverse( "ABCD")<< endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>PROBLEMA 9.11 char *ampliacaracter( char *cadena, int lon, char ch) { char * acadena = new char[lon +1];</p><p> strcpy(acadena,cadena); for (int i = strlen(cadena); i< lon; i++) acadena[i]= ch; acadena[lon] = '\0'; return acadena; } int main(int argc, char *argv[]) { cout << "ABCD" << " "<< ampliacaracter("ABCD", 7, 'X')<< endl; cout << "ABCD" << " "<< ampliacaracter("ABCD", 2, 'X')<< endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>16 Resultado de ejecución del programa:</p><p>PROBLEMA 9.12 </p><p>#include <cstdlib> #include <iostream> using namespace std; char * reverse (char * cadena) { char* rcadena; int i, lon;</p><p> lon = strlen(cadena); rcadena = new char[lon+1]; </p><p> for(int i = 0; i < lon; i++) rcadena[lon - i - 1] = cadena[i]; rcadena[lon] = '\0'; return rcadena; } char *ampliacaracter( char *cadena, int lon, char ch) { char * acadena = new char[lon +1];</p><p> strcpy(acadena,cadena); for (int i = strlen(cadena); i< lon; i++) acadena[i]= ch; acadena[lon] = '\0'; return acadena; } char* SumarGrandes (char* numero1, char* numero2) { char* rnumero1, * rnumero2, *resultado; int i, mayor, acarreo = 0;</p><p> rnumero1 = reverse (numero1); rnumero2 = reverse (numero2); if (strlen (numero1) > strlen (numero2)) mayor = strlen (numero1); else mayor = strlen (numero2); resultado = new char[mayor +2]; // reserva de memoria para la suma *resultado = '\0'; // cadena vacía rnumero1 = ampliacaracter(rnumero1, mayor,'0'); // rellena con ceros rnumero2 = ampliacaracter(rnumero2, mayor,'0'); // rellena con ceros resultado =ampliacaracter(resultado,mayor+1,'0');//rellena con ceros // realización de la suma. </p><p> for (i = 0; i < mayor; i++) { // realización de la suma por el algoritmo estandar resultado[i]=(rnumero1[i]-'0'+rnumero2[i]-'0'+acarreo) % 10 +'0'; acarreo = (rnumero1[i] - '0'+ rnumero2[i]-'0'+ acarreo) / 10 ; } </p><p>17 if(acarreo > 0) resultado[mayor] = '0' + acarreo; else resultado[mayor] = '\0'; // el resultado tiene un carácter menos return reverse(resultado); } int main(int argc, char *argv[]) { cout << "55524" << " + " << "56789" << " = "; cout << SumarGrandes( "55524", "56789") << endl; cout <<"24" << " + " << "2463" << " = "; cout << leerGrandes( "24", "2463")<< endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Resultado de ejecución:</p><p>PROBLEMA 9.13 char * multiplica_digito (char* numero, char dig) { char* rnumero, *resultado;</p><p> int i, lon, acarreo = 0, d, valor; rnumero = reverse (numero); lon = strlen (numero); resultado = new char[lon +2]; // reserva de memoria para la suma *resultado = '\0'; // cadena vacía resultado=ampliacaracter(resultado, lon+1,'0');//rellena con ceros // realización del producto d = dig - '0'; for (i = 0; i < lon; i++) { // realización del producto por el algoritmo estandar valor = (rnumero[i]-'0')*d + acarreo; resultado[i] = '0'+ valor % 10; acarreo = valor / 10 ; } if(acarreo > 0) resultado[lon] = '0' + acarreo; else resultado[lon] = '\0'; // el resultado tiene un carácter menos return reverse(resultado); } </p><p>PROBLEMA 9.14 char * multiplica_grandes (char* numero1, char *numero2) { char *resultado, *sumando; int i, lon2 = strlen(numero2);</p><p> resultado = new char; *resultado = '\0';</p><p> for (i = lon2-1; i >= 0; i--)</p><p>18 { sumando = multiplica_digito(numero1,numero2[i]); sumando = ampliacaracter(sumando,strlen(sumando)+ lon2 - i - 1,'0'); resultado = SumarGrandes(resultado, sumando); } return resultado; } int main(int argc, char *argv[]) { cout << "resultado: " "2457" << " X " << " 659 =+"; cout << multiplica_grandes("2457", "659")<< endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>Un resultado de ejecución es el siguiente:</p><p>PROBLEMA 9.15 </p><p>#include <cstdlib> #include <iostream> using namespace std; char *ampliacaracter( char *cadena, int lon, char ch) { // codificada en el ejercicio 9.11 } int main(int argc, char *argv[]) { char* texto[100], buffer [81], *ptr; int i, j, mayor =-1;</p><p> cout << " Introduzca el texto linea a linea.\n";</p><p> for (i = 0; i < 100 ; i++) { cin.getline(buffer, 80); texto [i] = new char[80]; strcpy (texto[i], buffer); if (mayor < strlen (buffer)) mayor = strlen (buffer); } // rellenado con blancos for (i = 0; i < 100 ; i++) ampliacaracter(texto[i], mayor,' '); // visualización del texto. for (i = 0; i < 100 ; i++) cout << texto[i] << endl; system("PAUSE"); return EXIT_SUCCESS; }</p><p>19</p>

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    19 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us