fork download
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. char * istr(int n)
  7. {
  8. char s[20] = { 0 }, // С запасом :)
  9. *c = s+19;
  10. int sign = (n < 0) ? (n*=-1, -1) : (n==0) ? 0 : 1;
  11. if (n == 0) *--c = '0';
  12. else
  13. {
  14. for(; n; n/=10) *--c = n%10+'0';
  15. if (sign < 0) *--c = '-';
  16. }
  17. char * r = new char[s+20-c];
  18. char *q = r;
  19. while(*q++ = *c++);
  20. return r;
  21. }
  22.  
  23. int sint(const char * s)
  24. {
  25. int n = 0, sign = 1;
  26. if (*s == '-') { sign = -1; s++; }
  27. while(*s) n = n*10 + *s++ - '0';
  28. return n*sign;
  29. }
  30.  
  31. int main()
  32. {
  33. cout << "[" << istr(0) << "]\n";
  34. cout << "[" << istr(10) << "]\n";
  35. cout << "[" << istr(-20) << "]\n";
  36. cout << "[" << istr(1450) << "]\n";
  37. cout << "[" << istr(-213451230) << "]\n";
  38. cout << "[" << sint(istr(0)) << "]\n";
  39. cout << "[" << sint(istr(10)) << "]\n";
  40. cout << "[" << sint(istr(-20)) << "]\n";
  41. cout << "[" << sint(istr(1450)) << "]\n";
  42. cout << "[" << sint(istr(-213451230)) << "]\n";
  43. }
  44.  
Success #stdin #stdout 0s 4332KB
stdin
Standard input is empty
stdout
[0]
[10]
[-20]
[1450]
[-213451230]
[0]
[10]
[-20]
[1450]
[-213451230]