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

В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр - C++

Восстановить пароль Регистрация
 
nalad4ik
0 / 0 / 0
Регистрация: 13.05.2011
Сообщений: 5
15.06.2011, 19:01     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #1
Посмотрите что не так с моей задачей
В существующем на диске файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр. Заменить все символы этой последовательности на «*». (Файл создать с помощью текстового редактора)
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
#include<math.h>
#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<stdio.h>
main()
{FILE*fp;
fp=fopen("c:\\SETEVOE\\1txt.txt","r+");
if(fp!=NULL)
{char str[256],ch;
int k=0,p=0,x;
while(!feof(fp))
{fgets(str,256,fp);
puts(str);}
fseek(fp,0,SEEK_SET);
while(!feof(fp))
{ch=fgetc(fp);
if(ch>='0'&&ch<='9')
{k++;}
else
{if(k>p)
p=k;
k=0;
x=ftell(fp);
}}cout<<"Naibolshay posledovatelnost "<<p<<" cifr"<<x;
FILE*fp1;
fp1=fopen("c:\\SETEVOE\\temp.txt","w+");
fseek(fp,0,SEEK_SET);
while(!feof(fp))
{int ch=fgetc(fp);
if(ftell(fp)!=(x-p))
{fputc(ch,fp1);}
else
{char r='*';
while(ftell(fp)!=x++)
{fputc(r,fp1);}
fseek(fp,x++,SEEK_SET);}}}
else
printf("Oshibka");
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2011, 19:01     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр
Посмотрите здесь:

C++ Сформируйте новую строку из пяти самых длинных слов.
C++ Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str
C++ Пять самых длинных слов
Написать функцию, которая формирует строку, состоящую только из цифр, входящих в исходную строку C++
Найти 3 самых больших и 3 самых маленьких числа в двумерном массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
15.06.2011, 19:22     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #2
Дай сюда файл, на котором программ не работает.
nalad4ik
0 / 0 / 0
Регистрация: 13.05.2011
Сообщений: 5
16.06.2011, 22:52  [ТС]     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #3
в блокноте любой текст
kodugdu 534253 fdsj
53256634g gfd
вот такой например текст
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
17.06.2011, 01:32     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #4
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
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
int IsAllDigits(char* a){
    for(; *a; ++a){
        if(!isdigit(*a)) return 0;
    }
    return 1;
}
 
int main (){
    FILE* f=fopen("1.txt", "r+");
    if(!f){perror("Error"); return -1;}
    char text[1024], tmp[128], *res, *a=text;
    int resSize=0;
    while(!feof(f)){
        a=fgets(a, sizeof(text), f)+strlen(a);
    }
    a=text;
    for(; *a; a+=strlen(tmp)){
        while(isspace(*a)) ++a;
        sscanf(a, "%s", tmp);
        if(IsAllDigits(tmp)&&strlen(tmp)>resSize){
            res=a;
            resSize=strlen(tmp);
        }
    }
    fwrite(res, 1, resSize, stdout);
    while(resSize--) *res++='*';
    rewind(f);
    fputs(text, f);
    fclose(f);
    return 0;
}
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
17.06.2011, 09:28     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #5
Вот тебе ещё вариант задачи.

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
// функция по замене чисел на указаный символ
void  set_max_num(char*  str, const char  ch) {
         int  cnt = 0, pt = 0, pos = 0;
         for(int i = 0; *((str) + i) != '\0'; i++) {
        if( isdigit( *((str) + i) ) ) {
               pt++;
        if(pt > cnt) {
             cnt  = pt;
             pos  = i;
        }
        } else
              pt = 0;
        }
        for(int n = pos - cnt + 1; n <= pos; n++)
        *((str) + n) = ch;
}
 
void main() {
 
   FILE*  fp = fopen("X:\\test.txt", "r+");
   
   fseek(fp, 0L, SEEK_END);
   long     len = ftell(fp);
   fseek(fp, 0L, SEEK_SET);
   fpos_t pos;
   fgetpos(fp, &pos);
 
   char*  buff = (char*) malloc( (size_t) len );
   fread((void*) buff, (size_t) len, 1L, fp);
   buff[len - 1] = '\0';
    
   set_max_num(buff, '*' );  // изменить
 
   fsetpos(fp, &pos);
   fwrite((const void*)buff, strlen(buff), 1L, fp);
   fflush(fp);
   fclose(fp);
 
   if(buff)
          free(buff);
   buff = NULL;
}
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.06.2011, 16:40     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #6
Начнём с того, что этот цикл вечен, он никогда не кончается, почему не знаю, исправляй.
C++
1
2
while(ftell(fp)!=x++)
{fputc(r,fp1);}
KrotZaDroT
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 22
13.05.2014, 22:42     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #7
Цитата Сообщение от igorrr37 Посмотреть сообщение
FILE* f=fopen("1.txt", "r+");
такой вопрос. что значит r+?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2014, 01:08     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр
Еще ссылки по теме:

C++ В массиве целых чисел найти предпоследнюю группу, состоящую из возрастаю- щей последовательности цифр
Найти 50 самых длинных слов в файле C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.05.2014, 01:08     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр #8
Цитата Сообщение от KrotZaDroT Посмотреть сообщение
что значит r+?
http://www.cplusplus.com/reference/cstdio/fopen/
Yandex
Объявления
14.05.2014, 01:08     В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр
Ответ Создать тему
Опции темы

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