Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vlad3996
6 / 6 / 3
Регистрация: 27.10.2013
Сообщений: 14
#1

Файл. Подстрока из цифр - C++

26.11.2013, 23:54. Просмотров 180. Ответов 0
Метки нет (Все метки)

Требуется определить строки файла, содержащие максимальную по длине подстроку, состоящую только из цифр. Если таких строк несколько, вывести первые 10.
Вот мой код... Выдаёт неверный результат, если в строке одно слово.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
using namespace std;
bool proverka(char *token,int &max)
{
    bool flag=true;
    for(int i=0;i<strlen(token);i++)
        if(!isdigit(token[i]))
            flag=false;
    if((flag)&&(strlen(token)>max))
        max=strlen(token);
    if(flag) return true;
    else return false;
}
int main()
{
    setlocale(LC_CTYPE,"Rus");
    bool flag;
    int number_str=0,kol_max=0,max=0;
    FILE *f1_in,*f1_out;
    if((f1_in=fopen("input.txt","r"))==NULL)
    {
        cout<<"Файл для чтения не открывается"<<endl;
        system("pause");
        return 1;
    }
    char *str=new char [1000];
    char *str2=new char [1000];
    char *token;
    char razd[]=" ,\|";
    fgets(str,1000,f1_in);
    if(feof(f1_in))
    {
        cout<<"Файл пуст"<<endl;
        system("pause");
        return 1;
    }
    rewind(f1_in);
    bool flag1;
    while(fgets(str,1000,f1_in)!=NULL)
    {
        token=strtok(str," ");
        do  proverka(token,max);
        while(token=strtok(NULL," "));
    }
    rewind(f1_in);
    cout<<"Строки, содержащие подстроки максимальной длины :"<<endl;
    while(fgets(str,1000,f1_in)!=NULL)
    {
        flag=true;
        number_str++;   
        strcpy(str2,str);                   //копия строки для вывода
        token=strtok(str,razd); 
        do 
        {
        if(proverka(token,max)&&(flag)&&(kol_max<=10)&&(strlen(token)==max))
        {
            cout<<"Строка "<<number_str<<" ------ "<<str2<<endl;                    //вывод всей строки
            flag=false;         //чтобы повторно не выводило
            kol_max++;
        }
        }
        while(token=strtok(NULL,razd));
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 23:54     Файл. Подстрока из цифр
Посмотрите здесь:

Запись цифр в файл. C++
C++ Подстрока
подстрока C++
Посчитать, сколько раз подстрока встречается в строке C++
Завершающая подстрока C++
C++ Наибольшая общая подстрока
Задача: плохая подстрока. Усовершенствовать алгоритм C++
C++ Определить, сколько раз данная подстрока входит в строку
Подстрока в пределах от M до N C++
Подстрока, заключенная в кавычки C++
C++ Определить, сколько символов цифр содержит файл
C++ Определить позицию, с которой подстрока входит в строку

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru