Funkcje obsługujące ciągi znaków — część 2
Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 71 z 74.
Oto więcej przydatnych funkcji do pracy z ciągami znaków:
- erase(pos, len): Usuwa len znaków, zaczynając od pozycji pos, z bieżącego ciągu znaków.
- find(str): Zwraca pozycję pierwszego wystąpienia str w bieżącym ciągu znaków. Jeśli nie znajdzie, zwraca obiekt, który można porównać z -1.
- clear(): Usuwa wszystkie znaki z ciągu, pozostawiając go pustym.
- empty(): Zwraca true, jeśli ciąg znaków jest pusty, a w przeciwnym razie false.
Na przykład, używając następującego ciągu znaków:
std::string str = "Hello, World!";int pos = str.find("World");
// Wynik: pos = 7 (pozycja, w której zaczyna się "World")str.erase(5, 2);
// Wynik: "HelloWorld!"str.clear();
// Wynik: "" (pusty ciąg znaków)bool isEmpty = str.empty();
// Zwraca true, jeśli str nie zawiera żadnych znakówWyzwanie
ŁatwyUtwórz funkcję o nazwie stringSearchOperations, która przyjmuje ciąg znaków jako dane wejściowe i wykonuje następujące operacje za pomocą funkcji łańcuchowych:
- Znajduje i wyświetla pozycję pierwszego znaku spacji w ciągu.
- Usuwa 4 znaki od pozycji 5.
- Sprawdza, czy ciąg zawiera słowo "You", i wyświetla "Found" lub "Not Found".
- Czyści ciąg i sprawdza, czy jest pusty.
- Wyświetla wyniki po każdej operacji.
Użyj następującego formatu:
Space Found At: [Position of space]
After Erase: [String after erasing]
Contains You: [Found/Not Found]
Is Empty: [true/false]Spróbuj swoich sił
#include <iostream>
#include <string>
void stringSearchOperations(std::string str) {
// Znajdź pierwszą spację
// Usuń 4 znaki od pozycji 5
// Sprawdź, czy zawiera "You"
// Wyczyść ciąg znaków i sprawdź, czy jest pusty
}
int main() {
std::string str;
std::getline(std::cin, str);
stringSearchOperations(str);
return 0;
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 1
Operatory arytmetyczneOperator moduloInkrementacja/dekrementacjaPostinkrementacja/postdekrementacjaSkrócone operatory arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawy wejścia/wyjścia
Instrukcja coutInstrukcja cinWczytywanie ciągu znakówPowtórka — do 120Powtórka — prawda czy fałsz3Zmienne, część 2
Deklarowanie typówKonwencje nazewnictwaPowtórka — inicjalizacja zmiennychKonwersja typów, część 1Konwersja typów, część 26Podejmowanie decyzji
Instrukcja ifIf - elseInstrukcja switchOperator warunkowyPowtórzenie: if - elseZagnieżdżone if - else9Pętle
Pętla for — część 1Pętla whilePętla do whilePrzerwanie pętliPrzejście do następnej iteracjiPętla for — część 2Pętle zagnieżdżonePętle nieskończonePodsumowanie — dane wejściowe dynamiczne12Ciągi znaków
Ciągi znaków w stylu C — część 1Ciągi znaków w stylu C — część 2Operacje na ciągach znakówFunkcje obsługujące ciągi znaków — część 1Funkcje obsługujące ciągi znaków — część 2Poćwicz samodzielnie: Kompilator C++ online