Advertisement
xlujiax

Puntero a funcion

Oct 18th, 2016
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <iomanip>
  5. #include <cstring>
  6. using namespace std;
  7.  
  8. void leeCadena(char **&nombre, int &numDat){
  9.     int tam;
  10.     char buffPalabra[100];
  11.     char *auxNombre[100];
  12.     while(1){
  13.         if(!cin.getline(buffPalabra,20)) break;
  14.         tam = strlen(buffPalabra);
  15.         auxNombre[numDat] = new char [tam + 1];
  16.         strcpy(auxNombre[numDat], buffPalabra);
  17.         numDat++;
  18.     }
  19.     nombre = new char*[numDat];
  20.     for (int i = 0; i < numDat; i++) {
  21.         nombre[i] = auxNombre[i];
  22.     }
  23. }
  24.  
  25. int intComp(const void *v1,  const void *v2) {
  26.     int i1, i2;
  27.  
  28.     i1 = *(int*)v1;  // Tomamos el valor apuntado por v1 y v2
  29.     i2 = *(int*)v2;
  30.  
  31.     return i1 - i2;  // Para ordenar de mayor a menor ==> return i2 - i1;
  32. }
  33.  
  34. int strComp(const void*v1, const void*v2){
  35.     char**s1 = (char**)v1, **s2 = (char**)v2;
  36.     return strcmp(*s1, *s2);
  37. }
  38.  
  39. void imprime(char ** nombre, int numDat){
  40.     int i;
  41.     cout << "Los nombres ordenados: " << endl;
  42.     for (int i = 0; i < numDat; i++) {
  43.         cout << nombre[i] << endl;
  44.     }
  45. }
  46.  
  47. int main(int argc, char** argv) {
  48.     char** nombre;
  49.     int numDat = 0;
  50.     leeCadena(nombre, numDat);
  51.     qsort(nombre,numDat,sizeof(char*),strComp);
  52.     imprime(nombre,numDat);
  53.    
  54.     int arr[] = {34, 56, 22, 36, 12, 7, 83, 18, 63, 14};
  55.     qsort(arr,  10,  sizeof(int),  intComp);
  56.    
  57.     for (int i = 0; i < 10; i++) {
  58.         cout << arr[i] << " ";
  59.     }
  60.     cout << endl;
  61.  
  62.    
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement