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

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

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

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

26.11.2013, 23:54. Просмотров 184. Ответов 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++
в заданной строке найти позицию первого вхождения указанной подстроки .не используя стандартные функции.спасибо!

Подстрока в пределах от M до N - C++
помогите пож преобразовать в с++,за ранее спасибо Var i,m,n:byte; a,b:string; begin write('Введите слово'); ...

Завершающая подстрока - C++
Есть параметр std:::string Text и локальная переменная i, хранящая индекс символа. Требуется удалить из параметра начальные символы по этот...

Наибольшая общая подстрока - C++
Люди из раздела &quot;алгоритмы&quot; молчат.. спрошу тут..Прошу прощения за &quot;флуд&quot;. На днях отправил резюме в Яндекс. Откуда мне прислали...

Подстрока, заключенная в кавычки - C++
Всем добрый день! Вот такая примерно задачка. Имеется string S1=&quot;This is the long string having some words \&quot;in quotes\&quot;&quot;; Надо...

Задача: плохая подстрока. Усовершенствовать алгоритм - C++
Задача: Найдите, сколько существует строк заданной длины n, состоящих только из символов 'a', 'b' и &quot;c&quot;, и не содержащих подстроки...

Запись цифр в файл. - C++
Как записать int f=5; в файл output.txt, Подскажите функцию или алгоритм.

Определить позицию, с которой подстрока входит в строку - C++
не работает программа, выдает ошибки помогите плз // Лабораторная работа №3 // Массивы // #include &quot;stdafx.h&quot; #include...

Определить, сколько раз данная подстрока входит в строку - C++
Вводятся подстрока и строка. Определить, сколько раз данная подстрока входит в строку. Наложение строк не учитывать, т.е. в строку aaaa...


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

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

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