Привет, меня зовут Алексей и сегодня я хочу поделиться с вами простым способом разделения строки на слова в C .
Для начала, нам понадобится библиотека string, чтобы работать со строками, и библиотека vector, чтобы создать массив для хранения наших слов. Для разделения строки на слова мы будем использовать функцию getline, которая будет считывать строку из потока ввода и разделять ее на слова.
Ниже приведен код, который демонстрирует этот способ разделения строки на слова⁚
#include
#include
#include
int main {
std⁚⁚string str;
std⁚⁚vector
std⁚⁚cout << ″Введите строку⁚ ″;
std⁚⁚getline(std⁚⁚cin, str); // считываем строку с пробелами
std⁚⁚string word;
for (char c ⁚ str) {
if (c ' ') { // если находим пробел, то добавляем слово в массив и обнуляем временную переменную
words.push_back(word);
word.clear;
} else {
word c; // добавляем символ во временную переменную
}
}
// добавляем последнее слово в массив (если пробела в конце нет)
if (!word.empty) {
words.push_back(word);
}
// выводим разделенные слова
std⁚⁚cout << ″Разделенные слова⁚ ″;
for (std⁚⁚string w ⁚ words) {
std⁚⁚cout << w << ″ ″;
}
std⁚⁚cout << std⁚⁚endl;
return 0;
}
Давайте разберем этот код по шагам⁚
1; Мы объявляем переменные `str` и `words`. Переменная `str` будет хранить введенную пользователем строку, а переменная `words` будет использоваться для хранения разделенных слов.
2. Мы используем `std⁚⁚getline` для считывания строки с пробелами из потока ввода.
3. Создаем переменную `word`, которая будет использоваться для временного хранения текущего слова до тех пор, пока не встретим пробел.
4. Мы проходимся по каждому символу в строке с помощью цикла `for`. Если символ является пробелом, то добавляем текущее слово в массив `words` с помощью метода `push_back` и очищаем переменную `word` для следующего слова. Если символ не является пробелом, то добавляем его в переменную `word` с помощью оператора ` `.
5. После окончания цикла, проверяем, если переменная `word` не пустая, то добавляем последнее слово в массив `words`.
7. Возвращаем 0, чтобы указать, что программа успешно завершилась.