Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <windows.h>
- char** AddString(char** str, int &Size, char* buf)
- {
- char** copyStr = new char*[Size + 1];
- for(int i = 0; i < Size; i++)
- {
- copyStr[i] = new char[strlen(str[i])];
- strcpy(copyStr[i], str[i]);
- }
- delete[] str;
- str = new char*[Size + 1];
- for(int i = 0; i < Size; i++)
- {
- str[i] = new char[strlen(copyStr[i])];
- strcpy(str[i], copyStr[i]);
- }
- delete[] copyStr;
- str[Size] = new char[strlen(buf)];
- strcpy(str[Size], buf);
- Size++;
- return str;
- }
- char** FileRead(int &Size, char fileName[], bool success = true)
- {
- char** str = NULL;
- Size = 0;
- FILE* f = fopen(fileName, "r");
- if(f != NULL)
- {
- char buf[1000];
- while(!feof(f))
- {
- if(fscanf(f, "%s ", buf))
- {
- str = AddString(str, Size, (char*)buf);
- }
- }
- }
- else
- {
- printf("Ошибка чтения файла!\n");
- success = false;
- }
- fclose(f);
- return str;
- }
- void FileWrite(char** str, char fileName[], int Size)
- {
- FILE* f = fopen(fileName, "w");
- for(int i = 0; i < Size; i++)
- fprintf(f, "%s\n", str[i]);
- fclose(f);
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- int Size = 0;
- char** str = NULL;
- int Sizer = 0;
- char** strr = NULL;
- char buf[100] = "\0";
- printf("Данная программа удаляет слова содержащие цифры\n");
- bool run = true;
- while(run)
- {
- printf("Для начала введите файл который будет использован:\nИмя файла: ");
- scanf("%s", buf);
- bool suc = true;
- str = FileRead(Size, buf, suc);
- if(suc)
- {
- for(int i = 0; i < Size; i++)
- {
- bool conNumber = false;
- for(int j = 0; j < strlen(str[i]); j++)
- for(int k = 0; k < 10; k++)
- {
- if(str[i][j] == (char)(((int)'0')+k))
- {
- conNumber = true;
- j = strlen(str[i]);
- break;
- }
- }
- if(!conNumber)
- {
- strr = AddString(strr, Sizer, str[i]);
- }
- }
- run = false;
- }
- }
- FileWrite(strr, buf, Sizer);
- printf("В файл | %s | было записано всё, кроме слов содержащих цифры:\n", buf);
- for(int i = 0; i < Sizer; i++)
- printf("%s\n", strr[i]);
- //Delete
- for(int i = 0; i < Sizer; i++)
- delete[] strr[i];
- delete[] strr;
- for(int i = 0; i < Size; i++)
- delete[] str[i];
- delete[] str;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement