fork download
  1. #include <iostream>
  2.  
  3. int min(int a, int b)
  4. {
  5. if (a < b) return a;
  6. else return b;
  7. }
  8.  
  9.  
  10. char *resize(const char *str, unsigned size, unsigned new_size)
  11. {
  12. /* ... */
  13. char * newstr = new char[new_size];
  14. for (int i = 0; i < min(size, new_size); i++)
  15. {
  16. newstr[i] = str[i];
  17. }
  18. delete[] str;
  19. return newstr;
  20. }
  21.  
  22. char *getline()
  23. {
  24. char ch;
  25. char * mass = new char[0];
  26. int length = 0;
  27. while (true)
  28. {
  29. ch = std::cin.get();
  30. if (ch == NULL || ch == '\0') break;
  31. if (ch == EOF) break;
  32. mass = resize(mass, length, length + 1);
  33. mass[length] = ch;
  34. length++;
  35. }
  36. mass = resize(mass, length, length + 1);
  37. mass[length] = '\0';
  38. length++;
  39. return mass;
  40. }
  41.  
  42. int main()
  43. {
  44. char * str = getline();
  45. std::cout << str << std::endl;
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 16048KB
stdin
sasai lalka
stdout
sasai lalka