Программирование с использованием строкового типа - C (СИ)
Формулировка задачи:
Подскажите как задать условие чтобы программа считала количество слов в строке которые начинаются на "av"
Решение задачи: «Программирование с использованием строкового типа»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "как задать условие чтобы программа считала количество слов в строке которая начинаются на "av"";
char *slovo = strtok(str, " "), alp[] = "av";
int iCount = 0;//кол-во слов начинающиеся с av
while (slovo != NULL)
{
if (strstr(slovo, alp) == slovo)
iCount++;
puts(slovo);
slovo = strtok(NULL, " ");
}
printf("%d", iCount);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и вводом-выводом
- Объявление переменной
strтипаcharи инициализация её значениемкак задать условие чтобы программа считала количество слов в строке которая начинаются на «av» - Объявление переменной
slovoтипаchar*и инициализация её значением первым словом в строкеstr, используя функциюstrtok - Объявление переменной
iCountтипаintи инициализация её значением 0, которая будет считать количество слов в строке, начинающихся наav - В цикле
whileпроисходит проверка, не равно ли значениеslovoнулю, что означает окончание строки - Внутри цикла проверяется, содержит ли текущее слово подстроку
av, при этом сравнивается адрес подстроки с адресом текущего слова - Если подстрока найдена, то переменная
iCountувеличивается на единицу - После проверки, текущее слово выводится на экран с помощью функции
puts - После вывода слова, функция
strtokвызывается снова, передавая в неё значениеNULLи пробел в качестве разделителя, чтобы получить следующее слово в строке - После завершения цикла, выводится значение переменной
iCountс помощью функцииprintf - Возвращается 0, что означает успешное завершение программы