Advertisement
Levii_Valenok

жёванный крот этого домино

Nov 27th, 2020
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5. #include <math.h>
  6. void shiftToTheLeft(char* row, int start, int length);
  7. int integerValue();
  8. int getLength(char* word);
  9. //int charInToIntAndSum(char* string);
  10.  
  11. int main()
  12. {
  13.     char* string;
  14.     int n;
  15.     int lengthString = 0;
  16.     printf("\nEnter a number of symbols in string: \n");
  17.     n = integerValue();
  18.     if (!(string = (char*)calloc((n + 1), sizeof(char))))
  19.     {
  20.         printf("\nOoops,memory is not allocated\n");
  21.     }
  22.  
  23.     printf("Enter a text with %d symbols: \n", n);
  24.     rewind(stdin);
  25.     fgets(string, n + 1, stdin);
  26.  
  27.     printf("\nThe text you entered is: \n");
  28.     puts(string);
  29.  
  30.     lengthString = getLength(string);
  31.  
  32.     int k = 0;
  33.     for (int a = 0; a < 2; a++)
  34.     {
  35.         k = 0;
  36.         for (int i = 0; i < lengthString; i++)
  37.         {
  38.             if (string[i] == '0' || string[i] == '1' || string[i] == '2' || string[i] == '3' || string[i] == '4'
  39.                 || string[i] == '5' || string[i] == '6' || string[i] == '7' || string[i] == '8' || string[i] == '9')
  40.             {
  41.                 continue;
  42.             }
  43.             k++;
  44.             if (string[i] == ' ' || string[i] == ' \0')
  45.             {
  46.                 k = 0;
  47.             }
  48.  
  49.             if (k <= 3 && (string[i + 1] == ' ' || string[i + 1] == '\0' || string[i] == '\n'))
  50.             {
  51.                 shiftToTheLeft(string, i + 1, k + 1);
  52.                 i = 0;
  53.                 k = 1;
  54.             }
  55.         }
  56.     }
  57.  
  58.     //int b = charInToIntAndSum(string);
  59.  
  60.  
  61.     printf("\nNew text you entered is: \n");
  62.     puts(string);
  63.  
  64.     //printf("Your B: %d", b);
  65.     free(string);
  66.     return 0;
  67. }
  68.  
  69.  
  70.  
  71. int integerValue()
  72. {
  73.     char c;
  74.     int n;
  75.     while ((scanf_s("%d%c", &n, &c) != 2 || c != '\n'))
  76.     {
  77.         printf("You entered incorrect value. Please try again: \n");
  78.         rewind(stdin);
  79.     }
  80.  
  81.     return n;
  82. }
  83. int getLength(char* word)
  84. {
  85.     int k = 0;
  86.     while (*(word + k) != '\0')
  87.     {
  88.         ++k;
  89.     }
  90.     return k;
  91. }
  92. void shiftToTheLeft(char* row, int start, int length)
  93. {
  94.     int rowLength = getLength(row);
  95.     for (int i = start; i < rowLength + 1; i++)
  96.     {
  97.         *(row + i - length + 1) = *(row + i + 1);
  98.     }
  99.     row = (char*)realloc(row, (rowLength + 1 - length + 1) * sizeof(char));
  100.  
  101.     *(row + rowLength + 1 - (length + 1)) = '\0';
  102. }
  103.  
  104. //int charInToIntAndSum(char* string)
  105. //{
  106. //  int temp = 0;
  107. //  int k = 0;
  108. //  int a = 0;
  109. //  for (int i = 0; i < getLength(string); i++)
  110. //  {
  111. //      while ((string[i] == '0' || string[i] == '1' || string[i] == '2' || string[i] == '3' || string[i] == '4'
  112. //          || string[i] == '5' || string[i] == '6' || string[i] == '7' || string[i] == '8' || string[i] == '9')
  113. //          && (string[i + 1] == ' ' || string[i + 1] == '\0'))
  114. //      {
  115. //          k ++;  
  116. //      }
  117. //      for (int j = i; j = 0; j--)
  118. //      {
  119. //          if (string[j] == ' ')
  120. //          {
  121. //              break;
  122. //          }
  123. //          for (k; k = 0; k--)
  124. //          {
  125. //
  126. //              temp = string[j] - '0';
  127. //              a = temp * pow(10, k);
  128. //              a = a + a;
  129. //          }
  130. //      }
  131. //  }
  132. //  return a;
  133. //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement