Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 02.05.2014
Сообщений: 2
1

Заменить в файле каждую последовательность заданных одинаковых символов на один такой символ

02.05.2014, 12:27. Показов 2278. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите поправить код!

Заменить в файле каждую последовательность заданных
одинаковых символов на один такой символ.

(Требования: Программа должна состоять, как минимум, из двух фай-
лов. В следующих задачах “словом” называется последователь-
ность символов в пределах одной строки, не содержащая сим-
волов из заранее заданного набора (например, “.,;;!?()[]” и т.п.)
При решении задач рекомендуется пользоваться стандартны-
ми функциями strcmp, strcpy, strstr, strcat, strtok и др. (см.
string.h). Результатом работы программы должен быть новый,
преобразованный файл.)

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
#include <stdio.h>  
#include <math.h>  
#include <stdlib.h> 
#include <string.h>
int main(void) 
{  //Заменить в файле каждую последовательность заданных
    //одинаковых символов на один такой символ.
 
 
    int x=0,i; 
    char m;
    FILE *f;
    FILE *f2;
    int readsize;
 
    char FileName[100];
    char NameOut[100];
    char s[5000];
 
 
 
    printf("Введите буквy: ");
    scanf("%c", &m);
 
    printf("Введите имя файла:");
    scanf("%s", FileName);
    f=fopen(FileName,"r");
 
    if(NULL == f)
    {
        printf("Не смогли открыть файл\n");
        return -1;
    }
 
    readsize=fread(s,sizeof(char),sizeof(char)*5000,f);
    for (i=0;i<readsize;i++)
    {
        if (s[i]==m && s[i+1]==m)
            for (x=0;(x<5000 && s[x]!='\0');x++) 
                s[i+x+1] = s[i+x+2]; 
        else i++; 
 
    }
 
    printf("Введите имя выходного файла:");
    scanf("%s", NameOut);
    f2=fopen(NameOut,"w");
    printf("\n");
    printf("\t результат: \n");
    for(i=0;i<readsize;i++)
    {printf("%c",s[i]);
        fprintf(f2,"%c",s[i]);
    }
    fclose(f2);
    fclose(f);
 
 
 
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2014, 12:27
Ответы с готовыми решениями:

Заменить в строке последовательность символов на один символ
Добрый день. Помогите пожалуйста с заданием. :) Заранее извините если не в ту тему (впервые тут,...

Заменить всюду один заданный символ на последовательность из пяти таких символов
разработать алгоритм обработки строки символов,которая может содержать буквы английского...

Заменить каждую пару символов '**' на символ ' '
Доброго вечера! Не получается в задаче замена (подсчет C и D работает), поправьте пожалуйста, если...

Для строки, состоящей из одинаковых символов, вывести только один такой
Есть строка stroka = &quot;000000....&quot; нужно написать фрагмент: if (stroka состоит из нулей) то...

1
0 / 0 / 0
Регистрация: 02.05.2014
Сообщений: 2
17.06.2014, 14:33  [ТС] 2
Если что, то я ее сделала. Кому надо-обращайтесь
0
17.06.2014, 14:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2014, 14:33
Помогаю со студенческими работами здесь

Каждую последовательность в файле заменить максимальным членом
Дан файл, компонентами которого являются последовательно-сти целых чисел длины n (n-const). Каждую...

Заменить каждую последовательность повторяющихся элементов на один элемент
Написать программы, используя очереди: 1) Создать список из целых чисел. Заменить каждую...

Каждую подстроку длиной n > 1, состоящую из одинаковых символов, заменить на подстроку из тех же символов в ко
Доброго времени суток. Помогите с задачей. Дана строка S. Каждую подстроку длиной n &gt; 1, состоящую...

Заменить во введенной строке каждую последовательность <xx> (где xx – двухзначное шестнадцатеричное число) на символ с номером xx
Заменить во введенной строке каждую последовательность &lt;xx&gt; (где xx – двухзначное шестнадцатеричное...


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

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