Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include <iostream>
- /*1. С клавиатуры заполнить файл символами.Вывести содержимое файла на экран.
- 2. Найти наиболее длинную последовательность повторяющихся символов.
- 3. Заменить все слова заданной длины пробелами.*/
- void vvod_elementov(FILE* f)
- {
- fopen_s(&f, "readme.txt", "w");
- if (f == NULL)
- {
- printf("Error");
- exit(1);
- }
- printf("Vvedite stroky: \n");
- char* m = (char*)malloc(sizeof(char) * 255);
- while (gets_s(m, 255) && m[0] != '\0')
- {
- rewind(stdin);
- fprintf(f, m);
- fprintf(f, " ");
- }
- free(m);
- fclose(f);
- }
- void vivod_elementov(FILE* f)
- {
- fopen_s(&f, "readme.txt", "rt");
- if (f == NULL)
- {
- printf("Error");
- }
- printf("Vasha stroka:\n");
- char* m = (char*)malloc(sizeof(char) * 255);
- while (!feof(f))
- {
- rewind(stdin);
- fgets(m, 255, f);
- printf("%s", m);
- printf("\n");
- }
- free(m);
- fclose(f);
- }
- void dlin(FILE* f)
- {
- int k = 0, max = 0, n = 256;
- fopen_s(&f, "readme.txt", "r+");
- if (f == NULL)
- {
- printf("Error");
- exit(1);
- }
- int position = 0, max_k = 0, numb = -1;
- fpos_t p1;
- char buf_1, buf_2;
- for (; buf_1 = getc(f);)
- {
- p1 = ftell(f);
- if (buf_1 == EOF)
- {
- break;
- }
- for (; buf_2 = getc(f);)
- {
- if (buf_1 == EOF)
- {
- break;
- }
- if (buf_2 == buf_1)
- {
- k++;
- }
- else {
- if (k > max_k)
- {
- max_k = k + 1;
- fseek(f, -max_k, SEEK_CUR);
- position = ftell(f);
- fseek(f, max_k, SEEK_CUR);
- }
- k = 0;
- break;
- }
- }
- }
- printf("%d ", max_k);
- fseek(f, (position-1) * sizeof(char), SEEK_SET);
- for (int i = 0; i < max_k; ++i)
- {
- buf_1 = getc(f);
- printf("%c", buf_1);
- }
- printf(": end");
- fclose(f);
- }
- void zam(FILE* f)
- {
- fpos_t length1 = 0, l4=0;
- int length2;
- fopen_s(&f, "readme.txt", "r+");
- if (f == NULL)
- {
- printf("Error");
- exit(1);
- }
- fseek(f, 0, SEEK_END);
- printf("Vvedite razmer slova");
- scanf_s("%d", &length2);
- char buffer;
- rewind(f);
- while (!feof(f))
- {
- buffer = fgetc(f);
- l4++;
- if (buffer != ' ')
- {
- length1++;
- continue;
- }
- else
- {
- if (length1 == length2)
- {
- fseek(f, ((-length1) -1) * sizeof(char), SEEK_CUR);
- for (int j = length1; j > 0; --j)
- {
- fprintf(f, " ");
- }
- fseek(f, l4, SEEK_SET);
- }
- length1 = 0;
- }
- }
- fclose(f);
- }
- int main()
- {
- FILE* f = NULL;
- vvod_elementov(f);
- vivod_elementov(f);
- zam(f);
- vivod_elementov(f);
- dlin(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement