NosovDI 2 лет назад
Родитель 806f9d52a5
Сommit 24491f04e3

@ -0,0 +1,75 @@
#include <iostream>
#include <fstream>
#include <cstring>
#include <cctype>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
// Øàã 1: Çàïðîñ ó ïîëüçîâàòåëÿ èìÿ ôàéëà
char filename[256];
cout << "Ââåäèòå èìÿ ôàéëà: ";
cin.getline(filename, sizeof(filename));
// Øàã 2: Ïðîâåðêà êîððåêòíîñòè èìåíè ôàéëà
bool isValid = true;
// Ïðîâåðêà íà çàïðåùåííûå ñèìâîëû
const char* forbiddenChars = "*\"<>?|";
if (strpbrk(filename, forbiddenChars) != nullptr)
isValid = false;
// Ïðîâåðêà íà äâîåòî÷èå
if (strchr(filename, ':') != nullptr &&
(filename[1] != '\\' || !isalpha(filename[0]) ||
strchr(filename, '\\') != strrchr(filename, '\\')))
isValid = false;
// Øàã 3: Ïðîâåðêà íà ðàñøèðåíèå
const char* extension = ".txt";
if (strncmp(strrchr(filename, '.'), extension, strlen(extension)) != 0)
strcat(filename, extension);
// Øàã 4: Çàãðóçèòü ñîäåðæèìîå òåêñòîâîãî ôàéëà â ïàìÿòü
if (isValid)
{
ifstream file(filename, ios::binary | ios::ate);
if (file.is_open())
{
streampos fileSize = file.tellg();
char* buffer = new char[fileSize];
file.seekg(0, ios::beg);
file.read(buffer, fileSize);
file.close();
// Øàã 5: Çàïðîñèòü ó ïîëüçîâàòåëÿ ñòðîêó
char searchString[256];
cout << "Ââåäèòå ñòðîêó äëÿ ïîèñêà: ";
cin.getline(searchString, sizeof(searchString));
// Øàã 6: Ïîäñ÷èòàòü ÷èñëî âõîæäåíèé ñòðîêè â òåêñò ôàéë
int count = 0;
char* p = buffer;
while ((p = strstr(p, searchString)) != nullptr)
{
count++;
p += strlen(searchString);
}
cout << "×èñëî âõîæäåíèé ñòðîêè \"" << searchString << "\" â òåêñòîâîì ôàéëå: " << count << endl;
// Øàã 7: Îñâîáîäèòü âûäåëåííóþ ïàìÿòü
delete[] buffer;
}
else
cout << "Îøèáêà îòêðûòèÿ ôàéëà." << endl;
}
else
cout << "Íåêîððåêòíîå èìÿ ôàéëà." << endl;
system("pause");
return 0;
}

@ -0,0 +1,2 @@
I am a programmist!!!
This program is working so good!
Загрузка…
Отмена
Сохранить