Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char *resize(const char *str, size_t size, size_t new_size) {
- char *newStr = new char[new_size];
- for (int i = 0; i < min(size, new_size); ++i) {
- newStr[i] = str[i];
- }
- delete[] str;
- return newStr;
- }
- char *getline() {
- size_t size = 10;
- char *str = new char[size];
- size_t curLen = 0;
- char c;
- cin.get(c);
- while (true) {
- if (c == '\0'){
- if (curLen != 0) {
- break;
- }
- return nullptr; // не пашет если в конце непробельный или не \n и застревает
- }
- if (c == '\n') {
- break;
- }
- if (curLen == size - 1) {
- str = resize(str, size, size * 2);
- size *= 2;
- }
- str[curLen] = c;
- curLen++;
- cin.get(c);
- }
- str[curLen] = '\0';
- return str;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement