Как написать на СИ программу, которая выделяет числа из строк?

Для написания программы на языке C, которая выделяет числа из строк, можно использовать различные подходы в зависимости от требований и формата строк, которые нужно обрабатывать. Вот один из возможных подходов.

Шаг 1: Создание функции для проверки является ли символ числом
Вначале программы можно создать функцию, которая будет проверять, является ли символ числом. Для этого можно использовать функцию isdigit из стандартной библиотеки <ctype.h>.

#include <ctype.h>

int isNumber(char c) {
    if (isdigit(c)) {
        return 1;
    }
    return 0;
}

Шаг 2: Создание функции для извлечения чисел из строки
Следующим шагом можно создать функцию, которая будет извлекать числа из строки. В этой функции будет происходить проход по каждому символу строки, и если текущий символ является числом, то он будет добавлен в буфер. Если символ не является числом и буфер содержит число, оно будет добавлено в результат.

#include <stdio.h>

void extractNumbersFromString(char* str, int* numbers, int* count) {
    int len = strlen(str);
    int i = 0;
    int j = 0;
    int buffer = 0;
    int hasNumber = 0;

    for (i = 0; i < len; i++) {
        if (isNumber(str[i])) {
            buffer = buffer * 10 + (str[i] - '0');
            hasNumber = 1;
        } else {
            if (hasNumber) {
                numbers[j++] = buffer;
                buffer = 0;
                hasNumber = 0;
            }
        }
    }

    if (hasNumber) {
        numbers[j++] = buffer;
    }

    *count = j;
}

Шаг 3: Тестирование функции извлечения чисел из строки
Для тестирования программы можно написать функцию main, которая будет принимать строку введенную пользователем и вызывать функцию extractNumbersFromString для извлечения чисел из нее. Результат можно вывести на экран.

#include <stdio.h>

#define MAX_COUNT 100

int main() {
    char str[100];
    int numbers[MAX_COUNT];
    int count = 0;
    
    printf("Введите строку: ");
    fgets(str, sizeof(str), stdin);

    extractNumbersFromString(str, numbers, &count);

    printf("Извлеченные числа: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("n");

    return 0;
}

Это лишь один пример программы, которая выделяет числа из строк на языке C. Вы можете изменить ее в соответствии со своими требованиями и форматом строк, с которыми вы работаете.