Найти во введенной строке номер первой по порядку группы цифр, начинающейся цифрой "2" - C (СИ)
Формулировка задачи:
Ввести строку символов. Найти в строке номер первой по порядку группы цифр, начинающейся цифрой ‘2’. Нужна сама функция программы. Не могу написать программку. Буду благодарен за помощь.
Решение задачи: «Найти во введенной строке номер первой по порядку группы цифр, начинающейся цифрой "2"»
textual
Листинг программы
int srch_fnct(char* str)
{
int groups_count = 0;
while(*str!='\0'){
if (*str=='0' || *str=='1' || *str=='3' || *str=='4'
|| *str=='5' || *str=='6' || *str=='7' || *str=='8' || *str=='9')
{
groups_count++;
while(*str=='0' || *str=='1' || *str=='2' || *str=='3'
|| *str=='4' || *str=='5' || *str=='6' || *str=='7' || *str=='8' || *str=='9') *str++;
}
else if (*str=='2') return groups_count++;
*str++;
}
return 0;
}
Объяснение кода листинга программы
В данном коде реализована функция поиска количества групп цифр, начинающихся с цифры 2, в заданной строке.
- Переменная
groups_countинициируется значением 0 и используется для подсчета количества найденных групп. - В цикле, пока символ в строке не равен нулю (что означает конец строки), выполняется следующая последовательность действий:
- Если текущий символ является одной из цифр от 0 до 9, то увеличивается значение переменной
groups_count. Это означает, что была найдена еще одна группа. - Затем выполняется вложенный цикл, пока следующий символ в строке также является одной из цифр от 0 до 9. В этом случае переменная
groups_countувеличивается, и цикл продолжается. - Если текущий символ равен
2, то функция возвращает значение переменнойgroups_count, увеличивая его на 1. Это означает, что была найдена группа, начинающаяся с цифры2.
- Если текущий символ является одной из цифр от 0 до 9, то увеличивается значение переменной
- После каждой итерации внешнего цикла символ в строке увеличивается на 1.
- В конце функции возвращается значение 0.
Таким образом, данный код находит количество групп цифр, начинающихся с цифры
2, в заданной строке.