Итоги: поиск первого слова
Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 58 из 66.
Задание
ЛегкоВы получите одну строку ввода, содержащую предложение из нескольких слов, разделенных пробелами. Найдите и выведите первое слово из предложения, используя срезы строк (string slicing).
Требования:
- Прочитайте входное предложение и удалите лишние пробелы по краям (trim)
- Найдите позицию первого пробела в предложении
- Создайте срез строки от начала предложения до (но не включая) первого пробела
- Выведите первое слово
Подсказка: Вы можете использовать метод .find(), чтобы найти позицию первого пробела. Вызовите его следующим образом: sentence.find(' '), передав символ пробела в качестве аргумента. Этот метод возвращает Option, который содержит индекс, если пробел найден. Используйте .unwrap_or(sentence.len()) для обработки случаев, когда пробелов может не быть (одно слово), устанавливая по умолчанию полную длину предложения.
Ввод:
- Предложение с одним или несколькими словами, разделенными пробелами (например,
Hello World from Rust)
Вывод:
- Первое слово из предложения
Попробуйте сами
use std::io::{self, BufRead};
fn main() {
// Считать входные данные
let stdin = io::stdin();
let sentence = stdin.lock().lines().next().unwrap().unwrap().trim().to_string();
// TODO: Напишите свой код ниже
// Найти позицию первого пробела
// Создать срез строки от начала до первого пробела
// Сохранить первое слово в переменной
// Вывести первое слово
// println!("{}", first_word);
}Все уроки раздела Logic & Flow
1Продвинутое управление потоком выполнения
Выражение 'match'Сопоставление нескольких значенийСопоставление диапазоновВыражение 'if let'Циклы как выраженияИтоги — Простой парсер команд4Группировка данных с помощью структур
Что такое структура?Обзор структурДоступ к полям структурыИзменяемые структурыСтруктуры как параметры функцийКортежные структурыИтоги: создание структуры Book7Обработка ошибок с помощью 'Result'
Что такое 'Result'?Использование 'match' с 'Result'is_ok() и is_err()Сокращения: unwrap и expectОператор вопросительного знака '?'Парсинг строк в числаИтоги: функция безопасного деления10Замыкания и анонимные функции
Что такое замыкание?Определение простого замыканияЗамыкания с параметрамиЗахват окруженияИтоги: Простое замыкание-сумматор2Введение в векторы
Что такое вектор?Создание вектораДобавление элементов с помощью pushДоступ к элементам вектораИтерация по векторуИзменяемая итерацияУдаление элементовИтоги — Простой счетчик очков5Пары «ключ-значение» в Hash Map
Что такое Hash Map?Создание Hash MapВставка пар «ключ-значение»Доступ к значениямИтерация по Hash MapОбновление значенияУдаление парыИтоги — Счетчик слов8Проект: Простой инвентарь товаров
Настройка проектаДобавление товараПроверка наличияПродажа товараСобираем всё воедино3Список дел в командной строке
Настройка проектаДобавление задачиПросмотр всех задачУдаление задачиИтоговый код6Обработка отсутствия значения с 'Option'
Что такое 'Option'?Использование 'match' с 'Option'is_some() и is_none()Распаковка 'Option'Метод expectЗначение по умолчанию: unwrap_orИтоги: поиск элемента9Срезы строк и не только
String и &strСоздание срезов строкСрезы как параметры функцийДругие срезыИтоги: поиск первого слова