Напишите программу, которая выводит первое слово переданной её символьной строки. Слово – это последовательность...

Тематика Информатика
Уровень 10 - 11 классы
программирование строковая обработка первое слово непробельные символы алгоритмы строки си код анализ текста
0

Напишите программу, которая выводит первое слово переданной её символьной строки. Слово – это последовательность непробельных символов, ограниченная пробелами или концами строки. на си

avatar
задан месяц назад

2 Ответа

0

Для выполнения данной задачи на языке программирования C можно написать следующий код:

#include 
#include 

void printFirstWord(char str[]) {
    int i = 0;
    while (str[i] == ' ') {
        i++;
    }
    int start = i;
    while (str[i] != ' ' && str[i] != '\0') {
        i++;
    }
    int end = i;
    for (int j = start; j < end; j++) {
        printf("%c", str[j]);
    }
    printf("\n");
}

int main() {
    char str[] = "   Hello, world!";
    printFirstWord(str);
    
    return 0;
}

Этот код определяет функцию printFirstWord, которая принимает символьную строку и выводит первое слово из этой строки. В функции используется два цикла: первый для поиска начала слова (пропускает все пробелы в начале строки), а второй для поиска конца слова. После этого происходит вывод найденного слова на экран. В функции main задается строка и вызывается функция printFirstWord для этой строки.

avatar
ответил месяц назад
0

Конечно! Давайте разберём, как можно написать программу на языке C, которая будет выделять первое слово из переданной символьной строки. В этой задаче нам нужно определить последовательность непробельных символов, которая начинается сразу после любых начальных пробелов, и завершается перед первым пробелом или концом строки.

Вот шаги, которые нужно выполнить:

  1. Пропустить начальные пробелы.
  2. Найти начало первого слова.
  3. Вывести символы до следующего пробела или конца строки.

Ниже приведён пример кода, который выполняет эти шаги:

#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;
}

Объяснение кода:

  1. Подключение библиотек: Мы используем #include для ввода-вывода и #include для функции isspace, которая проверяет, является ли символ пробельным.

  2. Функция printFirstWord:

    • Пропуск начальных пробелов: Цикл while используется для перемещения индекса i вперёд, пока не найдём первый непробельный символ.
    • Проверка на пустую строку: Если после пропуска пробелов мы находим, что строка закончилась, выводим соответствующее сообщение.
    • Вывод первого слова: Ещё один цикл while выводит все символы первого слова, пока не встретит пробел или конец строки.
  3. main функция:

    • Определяет строку inputString и вызывает printFirstWord, передавая ей эту строку.

Этот код достаточно прост и эффективно решает поставленную задачу. Вы можете изменить inputString в main, чтобы протестировать программу с различными входными данными.

avatar
ответил месяц назад

Ваш ответ

Вопросы по теме