Конечно! Давайте разберём, как можно написать программу на языке C, которая будет выделять первое слово из переданной символьной строки. В этой задаче нам нужно определить последовательность непробельных символов, которая начинается сразу после любых начальных пробелов, и завершается перед первым пробелом или концом строки.
Вот шаги, которые нужно выполнить:
- Пропустить начальные пробелы.
- Найти начало первого слова.
- Вывести символы до следующего пробела или конца строки.
Ниже приведён пример кода, который выполняет эти шаги:
#include
#include
void printFirstWord(const char *str) {
int i = 0;
// Пропуск начальных пробелов
while (isspace((unsigned char)str[i])) {
i++;
}
// Если строка состоит только из пробелов или пуста
if (str[i] == '\0') {
printf("Строка не содержит слов.\n");
return;
}
// Вывод первого слова
while (str[i] != '\0' && !isspace((unsigned char)str[i])) {
putchar(str[i]);
i++;
}
putchar('\n');
}
int main() {
const char *inputString = " Пример строки с несколькими словами";
printFirstWord(inputString);
return 0;
}
Объяснение кода:
Подключение библиотек: Мы используем #include
для ввода-вывода и #include
для функции isspace
, которая проверяет, является ли символ пробельным.
Функция printFirstWord
:
- Пропуск начальных пробелов: Цикл
while
используется для перемещения индекса i
вперёд, пока не найдём первый непробельный символ.
- Проверка на пустую строку: Если после пропуска пробелов мы находим, что строка закончилась, выводим соответствующее сообщение.
- Вывод первого слова: Ещё один цикл
while
выводит все символы первого слова, пока не встретит пробел или конец строки.
main
функция:
- Определяет строку
inputString
и вызывает printFirstWord
, передавая ей эту строку.
Этот код достаточно прост и эффективно решает поставленную задачу. Вы можете изменить inputString
в main
, чтобы протестировать программу с различными входными данными.