Добавить в код проверку: есть ли в файле строка, которую мы хотим заменить - C (СИ)
Формулировка задачи:
Ребята помогите доделать. Есть код по замене строки:
Чтение идет из файла. Надо добавить проверку есть ли такая строка которую мы хотим заменить. Подскажите как сделать пожалуйста
#include <stdio.h>
#include <string.h>
#include <windows.h>
/* stf - что ищем; rtf - на что меняем; fpath - путь к файлу; str - стока текста*/
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char file_path[40] = { 0 }, stf[255] = { 0 }, rtf[255] = { 0 }, str[255] = { 0 };
FILE* file = NULL;
do
{
printf("Enter file path: ");
fgets(file_path, 40, stdin);
file_path[strlen(file_path) - 1] = '\0';
file = fopen(file_path, "r+");
} while (file == NULL);
printf("Enter text to find: ");
fgets(stf, 255, stdin);
stf[strlen(stf) - 1] = '\0';
printf("Enter text to replace: ");
fgets(rtf, 255, stdin);
rtf[strlen(rtf) - 1] = '\0';
while (fgets(str, 255, file) != NULL)
{
char* tmp_ptr = strstr(str, stf);
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);
}
fclose(file);
getchar();
return 0;
}Решение задачи: «Добавить в код проверку: есть ли в файле строка, которую мы хотим заменить»
textual
Листинг программы
if (tmp_ptr == NULL)
{
printf("Text not found!");
break;
}