Вопрос задан 27.10.2023 в 10:16. Предмет Информатика. Спрашивает Щербакова Полина.

Скласти програму, що підраховує число слів у рядку, уведеного користувачем. Для цього написати

функцію із прототипом: int num_word (char *s);​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бубнова Валерия.

#include <stdio.h>

int num_word(char *s);

int main() {

   char input[1000];

   printf("Введіть рядок: ");

   fgets(input, sizeof(input), stdin);

   int count = num_word(input);

   printf("Кількість слів: %d\n", count);

   return 0;

}

int num_word(char *s) {

   int count = 0;

   int word_started = 0;

   while (*s != '\0') {

       if (*s == ' ' || *s == '\n' || *s == '\t') {

           word_started = 0;

       } else if (word_started == 0) {

           word_started = 1;

           count++;

       }

       s++;

   }

   return count;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Доброго дня! Радий допомогти вам з цим завданням. Ось приклад програми, яка підраховує кількість слів у рядку, введеному користувачем:

```c #include

int num_word(char *s);

int main() { char str[100]; printf("Введіть рядок: "); gets(str); // Введіть рядок з клавіатури

int count = num_word(str); // Виклик функції для підрахунку слів printf("Кількість слів у рядку: %d\n", count);

return 0; }

int num_word(char *s) { int count = 0; int is_word = 0; // Флаг, що вказує, чи знаходимося в середині слова

while (*s) { if (*s == ' ' || *s == '\t' || *s == '\n') { is_word = 0; // Змінюємо флаг, якщо знайшли роздільник } else if (is_word == 0) { is_word = 1; // Змінюємо флаг, якщо знайшли початок слова count++; // Збільшуємо лічильник слів } s++; }

return count; } ```

У цьому прикладі ми використовуємо функцію `num_word`, яка приймає рядок в якості аргументу і повертає кількість слів у цьому рядку. Функція перебирає кожен символ рядка і перевіряє, чи є він роздільником (пробілом, табуляцією або символом нового рядка). Якщо знайдено роздільник, функція змінює флаг `is_word` на 0, щоб показати, що ми не знаходимося в середині слова. Якщо символ не є роздільником і флаг `is_word` дорівнює 0, це означає, що ми знаходимося на початку нового слова, тому збільшуємо лічильник слів `count` на 1.

Будь ласка, зверніть увагу, що цей код використовує функцію `gets`, яка може бути небезпечною для використання через можливість переповнення буфера. Рекомендую використовувати безпечніші альтернативи, такі як `fgets`, для зчитування рядків з клавіатури.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос