Оставить в файле только те фразы, в которых имеется числовая информация - C (СИ)
Формулировка задачи:
Дан файл, содержащий некоторый текст. Оставить в этом файле только те фразы, в которых имеется числовая информация (то есть слова, состоящие только из цифр).
Как это сделать?
Решение задачи: «Оставить в файле только те фразы, в которых имеется числовая информация»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define MAX_LEN_LINE 100
int main (int argc, char **argv) {
FILE* file;
file = fopen(argv[1], "r");
char line[MAX_LEN_LINE];
char value[MAX_LEN_LINE];
while (fgets(line, MAX_LEN_LINE, file) != NULL) {
sscanf(line, "%s", value);
for (int i = 0; value[i] != '\0'; i++) {
char* str = value;
size_t span = strspn(str, "0123456789");
if(str[span] == '\0' && i == 0) {
int i = 0;
printf("%s\n", value);
i++;
}
}
}
fclose(file);
}
Объяснение кода листинга программы
В этом коде считывается содержимое файла построчно с помощью функции fgets(). Каждая строка затем проверяется на наличие числовой информации с помощью функции sscanf() и strspn(). Если числовая информация присутствует и она является первой в строке, то эта строка выводится на экран с помощью printf(). В конце файл закрывается с помощью fclose().