Выполнить условие, если за звездочкой стоит цифра - C (СИ)

Узнай цену своей работы

Формулировка задачи:

while((t=strstr(t,"*0"))!=0 ||
      (t=strstr(t,"*1"))!=0 ||
      (t=strstr(t,"*2"))!=0 ||
      (t=strstr(t,"*3"))!=0 ||
      (t=strstr(t,"*4"))!=0 ||
      (t=strstr(t,"*5"))!=0 ||
      (t=strstr(t,"*6"))!=0 ||
      (t=strstr(t,"*7"))!=0 ||
      (t=strstr(t,"*8"))!=0 ||
      (t=strstr(t,"*9"))!=0 )
Как правильно реализовать данный код? Необходимо выполнять условие если за звездочкой стоит цифра.

Решение задачи: «Выполнить условие, если за звездочкой стоит цифра»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
int is_test(const char* s){
    for(;(s = strchr(s, '*')) != NULL; ++s){
        if(isdigit(*(s + 1)))
            return 1;
    }
    return 0;
}
 
int main(void){
    if(is_test("*A*9"))
        puts("Yes find.");
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с памятью, строками и символами.
  2. Определяем функцию is_test, которая принимает в качестве аргумента указатель на строку.
  3. Используя цикл for, мы ищем символ * в строке.
  4. Когда мы находим символ * в строке, мы проверяем, является ли следующий символ цифрой.
  5. Если следующий символ является цифрой, мы возвращаем 1.
  6. Если мы доходим до конца строки и не находим цифру, мы возвращаем 0.
  7. В функции main мы вызываем функцию is_test с аргументом *A*9.
  8. Если функция is_test возвращает 1, мы выводим сообщение Yes find..
  9. Если функция is_test возвращает 0, мы ничего не выводим.
  10. Возвращаем 0, чтобы указать, что программа успешно завершилась.

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы