Чудово!
Completion показник покращився до 4.35single
Завдання: Пошук у Рядках
Свайпніть щоб показати меню
Метод find()
Іноді виникає потреба знайти певний текст у string. Це можна зробити за допомогою методів .find() або .rfind(). Почнемо з методу .find().
find.h
1str.find("text to find")
Повертає індекс першого символу першого збігу.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; // (code)codefinity }
Ви також можете вказати позицію першого символу у рядку, з якої починати пошук. Це можна зробити за допомогою аргументу pos. Усі символи до індексу pos ігноруються під час пошуку.
Ось приклад знаходження першого входження "code", починаючи з третього символу.
main.cpp
1234567#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code", 3) << std::endl; // __de(code)finity }
Метод rfind()
Можна також знайти останнє входження певного тексту за допомогою методу .rfind().
rfind.h
1str.rfind("text to find")
Метод .find() знаходить перше входження тексту, а .rfind() знаходить останнє входження та означає зворотний пошук.
main.cpp
12345678#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.find("code") << std::endl; std::cout << str.rfind("code") << std::endl; }
Якщо .find() або .rfind() не можуть знайти підрядок, вони повертають string::npos. Це числова константа, що позначає некоректну позицію. Вона зберігається як найбільше можливе значення типу size_t, що дозволяє легко виявити невдалі пошуки.
main.cpp
12345678#include <iostream> int main() { std::string str = "codecodefinity"; std::cout << str.rfind("abc") << std::endl; std::cout << std::string::npos << std::endl; }
Swipe to start coding
Ви створюєте простий фільтр електронної пошти. Ваша мета — дозволити користувачам реєструватися з будь-якою електронною адресою та позначати листи з codefinity.com як дозволені.
Функція isAllowedEmail приймає email як string.
- Використайте
rfind(), щоб знайти останній символ'@'у електронній адресі. - Порівняйте результат
rfindз-1, щоб перевірити наявність символу'@'. Якщо'@'не знайдено, повернітьfalse, оскільки електронна адреса недійсна. - Ініціалізуйте змінну типу string з іменем
domainяк порожній рядок. - Використайте цикл
for, починаючи зatPos + 1до довжиниemail, щоб перебрати символи після'@'. - На кожній ітерації додавайте символ до змінної
domain. - Якщо
domainдорівнює"codefinity.com", повернітьtrue. Інакше повернітьfalse.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат