Добавил:
sergey123
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ООП / 3 и 6 лабы / sem5 / sem5 / sem5
.cpp#include <iostream>
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <cstdio>
#include <conio.h>
#include <iostream>
#include <iomanip>
#pragma once
using namespace std;/* stf - что ищем; rtf - на что меняем; fpath - путь к файлу; str - строка текста*/
int main ()
{
char it[] = "asb.txt";
char file_path[40] = { 0 };
char stf[255] = { 0 };
char rtf[255] = { 0 };
char str[255] = { 0 };
char stk[255] = { 0 };
char lt[] = "asb.txt";
FILE *file = NULL;
file = fopen("asd.txt", "r+");
printf("Enter text to find: ");/* stf - что ищем; rtf - на что меняем; fpath - путь к файлу; str - строка текста*/
fgets(stf, 255, stdin);// считывает до num-1 символов из файла и помещает их в массив символов
stf[strlen(stf) - 1] = '\0';
printf("Enter text to replace: ");
fgets(rtf, 255, stdin);
rtf[strlen(rtf) - 1] = '\0';//rtf - на что меняем
FILE *flie = NULL;
flie=fopen(it,"w+");
lt[2]='d';
while(fgets(str, 255, file) != NULL)// перезапись текста в str
{
char* tmp_ptr = strstr(str, stf);//Функция strstr возвращает указатель на str если str обнаружена, str-строка текста
while(tmp_ptr != NULL)
{
char tmp_str[255];
strcpy(tmp_str, tmp_ptr + strlen(stf));
strcpy(str + strlen(str) - strlen(tmp_ptr), rtf);
strcat(str, tmp_str);
tmp_ptr = strstr(str, stf);
}
printf("%s", str);
fprintf(flie,"%s", str);
}
fclose(file);
fclose(flie);
remove(lt);
rename(it,lt);
getchar();
return 0;
}