Advertisement
a20121248

util.cpp

Oct 6th, 2015
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <cstring>
  2. #include <cctype>
  3.  
  4. void separaPalabras(char* linea, char** lstPal, int &numPal) {
  5.     numPal = 0;
  6.     for (char* pal = strtok(linea, " \t"); pal; pal = strtok(NULL, " \t"))
  7.         lstPal[numPal++] = pal;
  8. }
  9.  
  10. void separaPalabras(char* linea, char** lstPal, int &numPal) {
  11.     numPal = 0;
  12.     if (!isblank(linea[0])) {
  13.         lstPal[0] = linea;
  14.         ++numPal;
  15.     }
  16.     for (int i = 1; linea[i]; ++i) {
  17.         if (!isblank(linea[i]) && (isblank(linea[i-1]) || linea[i-1] == 0))
  18.             lstPal[numPal++] = &linea[i];
  19.         if (!isblank(linea[i]) && isblank(linea[i+1]))
  20.             linea[++i] = 0;
  21.     }
  22. }
  23.  
  24. template<typename T>
  25. T* memoriaExacta(T* buff, int num) {
  26.     T* arr = new T [num+1];
  27.     for (int i = 0; i < num; ++i)
  28.         arr[i] = buff[i];
  29.     arr[num] = NULL;
  30.     return arr;
  31. }
  32. template void** memoriaExacta(void** buff, int num);
  33.  
  34. template<typename T>
  35. void aumentarEspacios(T* &arr, int num, int tam) {
  36.     T* aux = new T [tam];
  37.     for (int i = 0; i < num; ++i)
  38.         aux[i] = arr[i];
  39.     delete[] arr;
  40.     arr = aux;
  41. }
  42. template void aumentarEspacios(int* &arr, int tam, int num);
  43. template void aumentarEspacios(char** &arr, int tam, int num);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement