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

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

Восстановить пароль Регистрация
 
vlad3996
6 / 6 / 3
Регистрация: 27.10.2013
Сообщений: 14
26.11.2013, 23:54     Файл. Подстрока из цифр #1
Требуется определить строки файла, содержащие максимальную по длине подстроку, состоящую только из цифр. Если таких строк несколько, вывести первые 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++ Наибольшая общая подстрока
Подстрока в пределах от M до N C++
Подстрока, заключенная в кавычки C++

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

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

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