Dynamiczne wczytanie tablicy charów
Ostatnio zmodyfikowano 2018-06-16 18:19
aram100 Temat założony przez niniejszego użytkownika |
Dynamiczne wczytanie tablicy charów » 2018-06-16 17:42:21 Hej Załóżmy że chcę pobrać od użytkownika jakiś długi, ale nie znam DOKŁADNEGO rozmiaru. Normalnie można użyć string'a: #include <iostream> #include <string>
using namespace std;
int main() { cout << "Podaj wyraz" << '\n'; string wyraz; cin >> wyraz; cout << "Wpisany wyraz to: << string << '\n'; return 0; }
Problem jest taki, że nie mogę używać stringów w zadaniu które dostałem Niby string to tablica znaków typu char. Da się jakoś taką tablicę zaalokować aby przyjmowała dynamicznie rozmiar wpisywanego wyrazu.? Tak aby nie pobierać wcześniej wielkości od user'a |
|
md37 |
» 2018-06-16 17:58:04 Klasa std::string sama zajmuje się gospodarką pamięci. Automatycznie alokuje więcej miejsca, gdy jest to potrzebne. Program, który napisałeś, zadziała. |
|
garlonicon |
» 2018-06-16 18:19:28 Da się jakoś taką tablicę zaalokować aby przyjmowała dynamicznie rozmiar wpisywanego wyrazu.? Tak aby nie pobierać wcześniej wielkości od user'a |
Tak, da się. Przydzielasz ileśtam pamięci (wybierz sobie jakąś stałą liczbę). Jeśli napis jest dłuższy, przydzielasz więcej, kopiujesz dane, usuwasz mniejszą tablicę. I tak w kółko aż do wczytania całości. Ewentualnie możesz od razu przydzielić jej bardzo dużo i rzucić błąd jak napis będzie dłuższy. |
|
« 1 » |