
Скласти програму, що підраховує число слів у рядку, уведеного користувачем. Для цього написати
функцію із прототипом: int num_word (char *s);

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

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



Доброго дня! Радий допомогти вам з цим завданням. Ось приклад програми, яка підраховує кількість слів у рядку, введеному користувачем:
```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`, для зчитування рядків з клавіатури.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili