#include "stdafx.h"
#define MAX_SIZE 255
#define SMB '\n'
#pragma warning(disable : 4996)
void func70(char *str);
int main(int argc, char *argv[])
{
setlocale(LC_ALL, "");
char str[MAX_SIZE];
FILE *f;
char* filename;
if (argc == 2)
{
filename = argv[1];
printf("[Этап 1]: Аргументы определены! (%s) \n", filename);
}
else
{
printf("[Этап 1]: Аргументы не были переданы, или переданы неверно! \n\n");
return EXIT_FAILURE;
}
// ReSharper disable once CppDeprecatedEntity
f = fopen(filename, "r");
if (f != nullptr)
printf("[Этап 2]: Файл успешно открыт! \n\n");
else
{
printf("[Этап 2]: Произошла ошибка открытия файла! Проверьте правильность введенных аргументов... \n");
return EXIT_FAILURE;
}
printf("[Этап 3]: Чтение файла начато! \n------------------------------\n\n");
while (fgets(str, MAX_SIZE, f))
func70(str);
if (ferror(f))
{
printf("\n------------------------------\n[Этап 4]: Ошибка чтения из файла! Работа программы завершена... \n\n");
return EXIT_FAILURE;
}
printf("\n------------------------------\n[Этап 4]: Чтение файла закончено! Работа программы завершена... \n\n");
return fclose(f);
}
bool mystrcmp(const char *str1, const char *str2)
{
for (int i = 0; str1[i] != SMB; i++)
for (int j = 0; str2[j] != SMB; j++)
if (str1[i] == str2[j])
return true;
return false;
}
void func70(char *str)
{
int k1 = 0, k2 = 0;
char word1[MAX_SIZE], word2[MAX_SIZE];
for (int i = 0; str[i] != SMB; i++)
{
if (str[i] != ' ')
word1[k1++] = str[i];
else
{
word1[k1] = SMB;
for (int j = i + 1; str[j] != SMB; j++)
{
if (str[j] != ' ')
word2[k2++] = str[j];
else
{
word2[k2] = SMB;
if (k1 != 0 && k2 != 0 && k1 != k2 && !mystrcmp(word1, word2))
return;
k2 = 0;
}
}
k1 = 0;
}
}
printf("%s", str);
}