Strona główna › Pytania INF.04 › Pytanie 667
INF.04 · pytanie #667
Przedstawiony fragment dotyczy funkcji resize w języku C++. Ta funkcja obniży długość elementu string, gdy wartość parametru <br><br> <table><tr><td>Resize string Resizes the string to a length of n characters. If n is smaller than the current string length, the current value is shortened to its first n character, removing the characters beyond the nth. If n is greater than the current string length, the current content is extended by inserting at the end as many characters as needed to reach a size of n. If c is specified, the new elements are initialized as copies of c; otherwise, they are value-initialized characters (null characters). Parameters n New string length, expressed in number of characters. size_t is an unsigned integral type (the same as member type string::size_type). c Character used to fill the new character space added to the string (in case the string is expanded). Źródło: http://www.cplusplus.com/reference/string/string/resize/</td></tr></table>
- An jest większa od aktualnej długości łańcucha
- Bc jest większa od aktualnej długości łańcucha
- Cc jest mniejsza od aktualnej długości łańcucha
- Dn jest mniejsza od aktualnej długości łańcucha
Poprawna odpowiedź: D. n jest mniejsza od aktualnej długości łańcucha
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
To jest dokładnie to, o co chodzi w funkcji resize dla std::string w C++. Jeśli podany parametr n jest mniejszy od aktualnej długości łańcucha, to obcinamy stringa do tych właśnie n znaków – reszta znika bezpowrotnie. Moim zdaniem to bardzo wygodne, bo nie trzeba ręcznie wycinać fragmentu czy bawić się w operacje na podłańcuchach. Praktycznie rzecz biorąc, można dzięki temu szybko skrócić dane wejściowe, np. gdy pobieramy z pliku długi tekst, a potrzebujemy tylko jego fragment do dalszego przetwarzania. W branży często się to przydaje – na przykład ograniczając długość nicku użytkownika do określonej liczby znaków lub przytrzymując długość serializowanych danych w protokołach sieciowych. Resize działa wprost i zgodnie ze standardem C++, usuwając znaki od indeksu n wzwyż. Co ciekawe, metoda nie tylko skraca, ale też rozszerza string – wtedy wypełnia go nowymi znakami (np. 'x' czy znakiem pustym), ale to właśnie skracanie jest często pomijane przez początkujących, a jest naprawdę przydatne. No i trzeba pamiętać, że oryginalne znaki spoza zakresu po prostu znikają – nie ma żadnych ostrzeżeń. Z mojego doświadczenia to jedna z tych funkcji, do których z czasem nabiera się szacunku – bo ułatwia życie na co dzień przy operacjach na łańcuchach znaków.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.