Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.68 KB | None | 0 0
  1. #include <cstring>
  2. #include <cerrno>
  3. #include <cctype>
  4. #include "nem_oo.h"
  5.  
  6. namespace sajat {
  7.     int atoi(const char *p, int base)
  8.     {
  9.         long int number = 0;
  10.         int strstart = -1;
  11.         int strend = std::strlen(p);
  12.  
  13.         for (int i = 0; i < strend; i++)
  14.         {
  15.             if (strstart == -1)
  16.             {
  17.                 if (p[i] >= 48 && p[i] <= 57)
  18.                     strstart = i;
  19.             }
  20.             else
  21.             {
  22.                 if (p[i] < 48 || p[i] > 57)
  23.                 {
  24.                     strend = i;
  25.                     break;
  26.                 }
  27.             }
  28.         }
  29.  
  30.         if (strstart == -1)
  31.             throw "V90GJ3";
  32.  
  33.         for (int i = strstart; i < strend; i++)
  34.         {
  35.             if ((p[i] - 48) >= base)
  36.                 throw "V90GJ3";
  37.  
  38.             number *= 10;
  39.             number += p[i] - 48;
  40.         }
  41.  
  42.         if (base == 10)
  43.         {
  44.             return number;
  45.         }
  46.  
  47.         int out = 0;
  48.         int i = 0;
  49.         long int remainder = 0;
  50.  
  51.         while (number > 0)
  52.         {
  53.             remainder = number % 10;
  54.             number /= 10;
  55.             out += remainder * pow(base, i);
  56.             i++;
  57.         }
  58.  
  59.         return out;
  60.     }
  61.  
  62.     char* strcat(const char *p1, const char *p2)
  63.     {
  64.         char* array = new char[std::strlen(p1) + std::strlen(p2) + 1];
  65.         std::strcpy(array, p1);
  66.         std::strcat(array, p2);
  67.         return array;
  68.     }
  69.  
  70.     char *unique(char *first, char *last)
  71.     {
  72.         for (char *temp = first + 1; temp <= last; temp++)
  73.             if (*temp != *first )
  74.                 *++first = *temp;
  75.  
  76.         return first;
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement