RGR70
unknown
c_cpp
a year ago
2.1 kB
2
Indexable
Never
#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); }