Определить, входит ли заданное слово в строку - C (СИ)
Формулировка задачи:
Задача состоит из 3 пунктов меню. Я для 2-ух первых написал, а вот для 3 не могу. В нём нужно сделать следующее: определить, входит ли заданное слово в строку (вроде нужно использовать strtok)
Решение задачи: «Определить, входит ли заданное слово в строку»
textual
Листинг программы
#include <string.h>
#include <stdio.h>
#define BLANK_STRING ""
void main(void){
char *token, buf[81],*separators = "\t,. ";
int i;
puts("Вводите строки\n\
Завершение - нажатие ENTER.\n");
while(strcmp(gets(buf),BLANK_STRING)!=0) {
i = 0;
token = strtok(buf, separators);
while(token != NULL) {
printf("Лексема %d - %s\n", i, token); //!!!
token = strtok(NULL, separators);
i++;
}
}}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и вводом/выводом.
- Объявление переменных:
buf- буфер для ввода строки;separators- строка-разделитель;i- счётчик лексем;token- текущая лексема.
- Вывод приглашения для ввода строк.
- Ввод строки и проверка на пустоту (завершение ввода - нажатие ENTER).
- Пока строка не пустая, то разделение её на лексемы с помощью функции
strtok. - Вывод каждой лексемы с помощью функции
printf. - После вывода каждой лексемы, следующее значение
tokenстановитсяNULL, что означает конец списка лексем. - После каждой итерации счётчик
iувеличивается на 1. - После окончания ввода строки, программа завершается.