Advertisement
Usow_Maxim

Lab_9.9

May 11th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.95 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. char** AddString(char** str, int &Size, char* buf)
  5. {
  6.     char** copyStr = new char*[Size + 1];
  7.     for(int i = 0; i < Size; i++)
  8.     {
  9.         copyStr[i] = new char[strlen(str[i])];
  10.         strcpy(copyStr[i], str[i]);
  11.     }
  12.     delete[] str;
  13.     str = new char*[Size + 1];
  14.     for(int i = 0; i < Size; i++)
  15.     {
  16.         str[i] = new char[strlen(copyStr[i])];
  17.         strcpy(str[i], copyStr[i]);
  18.     }
  19.     delete[] copyStr;
  20.     str[Size] = new char[strlen(buf)];
  21.     strcpy(str[Size], buf);
  22.     Size++;
  23.     return str;
  24. }
  25.  
  26. char** FileRead(int &Size, char fileName[], bool success = true)
  27. {
  28.     char** str = NULL;
  29.     Size = 0;
  30.     FILE* f = fopen(fileName, "r");
  31.     if(f != NULL)
  32.     {
  33.         char buf[1000];
  34.         while(!feof(f))
  35.         {
  36.             if(fscanf(f, "%s ", buf))
  37.             {
  38.                 str = AddString(str, Size, (char*)buf);
  39.             }
  40.         }
  41.     }
  42.     else
  43.     {
  44.         printf("Ошибка чтения файла!\n");
  45.         success = false;
  46.     }
  47.     fclose(f);
  48.     return str;
  49. }
  50.  
  51. void FileWrite(char** str, char fileName[], int Size)
  52. {
  53.     FILE* f = fopen(fileName, "w");
  54.     for(int i = 0; i < Size; i++)
  55.         fprintf(f, "%s\n", str[i]);
  56.     fclose(f);
  57. }
  58.  
  59. int main()
  60. {
  61.     SetConsoleCP(1251);
  62.     SetConsoleOutputCP(1251);
  63.  
  64.     int Size = 0;
  65.     char** str = NULL;
  66.  
  67.     int Sizer = 0;
  68.     char** strr = NULL;
  69.  
  70.     char buf[100] = "\0";
  71.     printf("Данная программа удаляет слова содержащие цифры\n");
  72.     bool run = true;
  73.     while(run)
  74.     {
  75.         printf("Для начала введите файл который будет использован:\nИмя файла: ");
  76.         scanf("%s", buf);
  77.         bool suc = true;
  78.         str = FileRead(Size, buf, suc);
  79.         if(suc)
  80.         {
  81.             for(int i = 0; i < Size; i++)
  82.             {
  83.                 bool conNumber = false;
  84.                 for(int j = 0; j < strlen(str[i]); j++)
  85.                     for(int k = 0; k < 10; k++)
  86.                     {
  87.                         if(str[i][j] == (char)(((int)'0')+k))
  88.                         {
  89.                             conNumber = true;
  90.                             j = strlen(str[i]);
  91.                             break;
  92.                         }
  93.                     }
  94.                 if(!conNumber)
  95.                 {
  96.                     strr = AddString(strr, Sizer, str[i]);
  97.                 }
  98.             }
  99.             run = false;
  100.         }
  101.     }
  102.  
  103.     FileWrite(strr, buf, Sizer);
  104.     printf("В файл | %s | было записано всё, кроме слов содержащих цифры:\n", buf);
  105.     for(int i = 0; i < Sizer; i++)
  106.         printf("%s\n", strr[i]);
  107.  
  108.     //Delete
  109.     for(int i = 0; i < Sizer; i++)
  110.         delete[] strr[i];
  111.     delete[] strr;
  112.     for(int i = 0; i < Size; i++)
  113.         delete[] str[i];
  114.     delete[] str;
  115.  
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement