Metoda resize() klasy std::string służy do zmiany długości łańcucha znaków. Przyjmuje parametr n, czyli nową liczbę znaków w napisie. Opcjonalnie może przyjąć drugi parametr c, czyli znak używany do uzupełnienia napisu, gdy jest on powiększany.
Skrócenie napisu
Jeżeli n jest mniejsze od aktualnej długości napisu, napis zostaje skrócony do pierwszych n znaków. Znaki znajdujące się dalej są usuwane.
#include <iostream>
#include <string>
using namespace std;
int main() {
string tekst = "programowanie";
tekst.resize(7);
cout << tekst; // program
}
W tym przykładzie aktualna długość napisu jest większa niż 7, więc metoda usuwa znaki po siódmym znaku.
Zwiększenie napisu
Jeżeli n jest większe od aktualnej długości napisu, napis zostaje wydłużony. Brakujące znaki są dopisywane na końcu.
string tekst = "abc";
tekst.resize(6, 'x');
cout << tekst; // abcxxx
Jeśli nie podamy znaku c, nowe miejsca zostaną wypełnione znakami pustymi, czyli \0.
Najważniejsze do zapamiętania
noznacza nową długość napisu.coznacza znak wypełniający przy rozszerzaniu napisu.- Gdy
n < aktualna długość, napis jest skracany. - Gdy
n > aktualna długość, napis jest wydłużany.
W pytaniach egzaminacyjnych trzeba uważnie odróżniać parametr n od parametru c. To n decyduje o nowej długości łańcucha.