0 / 0 / 0
Регистрация: 19.09.2016
Сообщений: 22
1

Строки: считать текст из файла и вывести в другой файл и на экран только строки, не содержащие цифр

10.03.2018, 20:59. Показов 3048. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая считывает текст из файла и выводит в другой файл и на экран только строки, не содержащие цифр.Помогите разобраться только в отрывке где нужно выделить строки не содержащие цифр
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int function1()
{
    int const NUM = 5;
    FILE *my_file = fopen("data.txt", "r");
    if (my_file == 0)
    {
        printf("Error of file opening!");
        return -1;
    }
    const int MAX_SIZE = 1024;
    char text[MAX_SIZE];
    fgets(text, MAX_SIZE, my_file);
    char sentences[NUM][MAX_SIZE];
    char * p;                           
    p = strtok(text, ".!?");         
    for (int i = 0; i < NUM; ++i)
    {
        strncpy(sentences[i], p, MAX_SIZE);     // помещаем предложение в массив        
        p = strtok(0, ".!?");                       // берем следующий за разделителем символ, принадлежащий очередному предложению     
        if ((p == 0) && (i < NUM))            // проверка наличия в тексте  предложений    
        {
            printf("Error! Less than %i sentences!", NUM);
            return -1;
        }
    }     fclose(my_file);
 
    printf("\nOriginal text:\n");
    for (int i = 0; i < NUM; ++i)
    {
        printf("%s\n", sentences[i]);           // вывод предложений    
    }
    
    my_file = fopen("result.txt", "w");         // открытие файла на запись   
    fprintf(my_file, "Only string without numbers:\n");
    printf("\nOnly string without numbers:\n");
    
    for (int i = 0; i < NUM; ++i)
    {  
            if (isdigit(sentences[i])) //  НЕ МОГУ ТУТ СДЕЛАТЬ ПИШЕТ НЕСОВМЕСТИМЫ ТИПЫ char and int
            {
            fprintf(my_file, "%s\n", sentences[i]);
            printf("%s\n", sentences[i]);
            }
    }
        fclose(my_file);
        return 0;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2018, 20:59
Ответы с готовыми решениями:

Считать текст из файла и вывести в другой файл и на экран строки, не содержащие цифр
Нужно написать программу, которая считывает текст из файла и выводит в другой файл и на экран...

Считать текст из файла, вывести в другой файл и на экран только строки содержащие заданный с клавиатуры символ
// Написать программу, которая считывает текст из файла и выводит в другой файл // и на экран...

Считать текст из файла и вывести на экран только строки, содержащие двузначные числа
Подскажите пожалуйста,по программе которая считывает текст из файла и выводит на экран только...

Считать текст из файла и вывести на экран только строки, не содержащие двузначных чисел
помогите пожалуйста написать программу, которая считывает текст из файла и выводит на экран только...

4
93 / 91 / 62
Регистрация: 23.11.2013
Сообщений: 242
10.03.2018, 21:08 2
Потому что функция isdigit принимает целое число, а не указатель на строку
Исправьте 39 строку:
C++
1
if (atoi(sentences[i]))
0
0 / 0 / 0
Регистрация: 19.09.2016
Сообщений: 22
10.03.2018, 21:54  [ТС] 3
все равно не работает, программа ничего не выдает после 35 строки

Добавлено через 21 минуту
ведь без isdigit не идет проверка по цифрам
0
93 / 91 / 62
Регистрация: 23.11.2013
Сообщений: 242
10.03.2018, 23:05 4
Лучший ответ Сообщение было отмечено Лида03 как решение

Решение

Цитата Сообщение от Лида03 Посмотреть сообщение
ведь без isdigit не идет проверка по цифрам
А isdigit может проверять только один символ.

Вам ведь надо в том цикле вывести только те строки, которые не содержат цифры?
Замените цикл который с 37 строки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    bool check;
    for (int i = 0; i < NUM; ++i)
    {
        check = false;
        for (int j = 0; j < MAX_SIZE && sentences[i][j]; ++j)
        {
            if (isdigit(sentences[i][j]))
            {
                check = true;
                break;
            }
        }
        if (!check) {
            fprintf(my_file, "%s", sentences[i]);
            printf("%s", sentences[i]);
        }
    }
1
0 / 0 / 0
Регистрация: 19.09.2016
Сообщений: 22
10.03.2018, 23:11  [ТС] 5
спасибо большое, все заработало))
0
10.03.2018, 23:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2018, 23:11
Помогаю со студенческими работами здесь

Считать текст из файла и вывести на экран только строки, содержащие двузначные числа
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие...

Считать текст из файла и вывести на экран только строки, не содержащие двузначных чисел
Написать программу, которая считывает текст из файла и выводит на экран только строки, не...

Считать текст из файла и вывести на экран только строки, содержащие двузначное числа
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие...

Считать текст из файла и вывести на экран только строки, не содержащие двузначных чисел
Пожалуйста, помогите!! Программа, которая считывает текст из файла и выводит на экран только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru