Есть html файл, в котором записана простейшая текстовая информация на русском языке.
Нужно пробежаться по файлу и заменить в нём некоторые части слов.
Допустим в файле будет множество слов на "ЖИ/ШИ", но написанные через "ы".
Нужно пройтись пройтись по файлу и во всех нужных нам местах заменить "ы" на "и".
Вот наработка:#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>
#define LEN 1000
int main(void)
{
setlocale(LC_ALL, "Rus");
puts("'ЖИ' и 'ШИ' ПИШИ С БУКВОЙ 'И'!");
wchar_t* cArray[LEN];
wchar_t _check = L"", _checkNext = L"";
FILE *_initialFile, *_correctedFile;
_wfopen_s(&_initialFile, L"initial.html", L"r,ccs=UNICODE");
_wfopen_s(&_correctedFile, L"corrected.html", L"w,ccs=UNICODE");
if (_initialFile == NULL)
{
puts("Исходный файл пуст!");
return EXIT_FAILURE;
}
while (fgetws(cArray, LEN, _initialFile) != NULL)
{
for (int i = 0; i < wcslen(cArray); i++) {
_check = cArray[i];
_checkNext = cArray[i + 1];
if ((_check == L"Ж" && _checkNext == L"ы") || (_check == L"ж" && _checkNext == L"ы") || (_check == L"Ш" && _checkNext == L"ы") || (_check == L"ш" && _checkNext == L"ы")) {
cArray[i + 1] = L"и";
i=i+2;
}
}
fwprintf_s(_correctedFile, L"%s", cArray);
}
fclose(_correctedFile);
fclose(_initialFile);
return EXIT_SUCCESS;
}
Она прекрасно копирует исходный файл в новый, но не заменяет.
Я пытался выводить считанные символы и ставить точки между считанными символами. Пришел к выводу, что символы не считываются из строки совсем.
Как исправить?