Biblioteka String Biblioteka jzyka C Biblioteka jzyka C
Biblioteka String
Biblioteka języka C++ • Biblioteka języka C • Biblioteka standardowa C++ – – STL (patrz: wykład o STL) Klasy strumieniowe (patrz: wykład o IOStream) Klasy łańcuchowe (string) (temat tego wykładu) Miscelaneous – rozmaite dodatkowe elementy, formalnie <string> jest jednym z nich – Biblioteka zdefiniowana w przestrzeni nazw std: : – Znacząco rozbudowana od standardu C++11 (głównie część STL)
Klasa string • string – klasa reprezentująca łańcuchy znakowe ASCII – utworzona z wzorca basic_string<> – istnieje również klasa wstring dla alfabetów jak Unicode – to nie jest łańcuch ASCIIZ (char *) – interfejs poswala na budowanie wyrażeń z użyciem: string, C ASCIIZ string, char • nie ma operatorów konwersji do sting za wyjątkiem pojedynczego char – Jest konstruktor: string s(1, ‘c’); • bez automatycznych konwersji z klasy string
Klasa string • Zaprojektowana by zachowywać się jak typ podstawowy. . . – wewnętrzne zarządzanie pamięcią – operatory strumieniowe • . . . Jednak z wieloma dodatkowymi metodami – Podobnie jak kontenery STL (np. vector)
Przykład użycia klasy string • Generowanie nazw tymczasowych(string 1. cpp) string 1. exe name. txt justname dot. moment. tmp => name. tmp => justname. tmp => dot. tmp => moment. xxx • string: : size_type to typ indeksu, użyj go a nie int • string: : npos oznacza posycję poza zakresem (wynosi -1) – podobny do iteratora post-end, ale jest wartością – jako wynik metod łańcuchowych oznacza: “nie znaleziono” – jako argument metod łańcuchowych oznacza : “wszytkie/pozostałe znaki”
Przykład użycia klasy string • Odwracanie słów (string 2. cpp) – – input: Hello world! output: olle. H !dlrow now, guess the input ; -) output: gnirt. S ssalc egasu elpmaxe • getline(stream, string) – Wczytuje cały wiersz odrzucając EOL – Zwraca fałsz po EOF – Trzeci argument jest znakiem końca wiersza, domyślnie ‘n’ • dostęp do elementów łańcucha – operator[] – szybki, bez sprawdzania zakresu – metoda at() – wolny, ze sprawdzaniem zakresu