Ввести строку символов, если ее длина кратна 5, посчитать количество скобок всех видов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ввести строку символов, если ее длина кратна 5, посчитать количество скобок всех видов, выделив их в отдельную строку
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <locale.h>
  4. #include <malloc.h>
  5. #include <string.h>
  6. void substringToSpace(char*, char*);
  7. int firstSpace(char*);
  8. void main()
  9. {
  10. setlocale(LC_CTYPE,"Russian");
  11. char str[100]; //выделение памяти под строку
  12. char brackets[]="[{()}]";
  13. puts("Введите строку максимум из 100 символов:");
  14. gets_s(str);
  15. int n = strlen(str);
  16. if(n %5==0)
  17. {
  18. char k = *brackets;
  19. (str);
  20. if(k == -1)
  21. {
  22. puts("Скобок в строке не найдено");
  23. }
  24. else
  25. {
  26. char* str2 = new char[k+1];
  27. substringToSpace(str, str2);
  28. printf("Исходная строка:%s\n", str);
  29. printf("Преобразованная строка (скобки):%s\n", str2);
  30. delete str2;
  31. }
  32. }
  33. else
  34. puts("Строка не кратна 5.");
  35. }
  36. void substringToSpace(char* str, char* str2)
  37. {
  38. int k = firstSpace(str);
  39. for(int i=0; i<k; i++)
  40. str2[i] = str[i];
  41. str2[k] = '\0';
  42. }
  43. int firstSpace(char* str)
  44. {
  45. char str2[]="[{()}]";
  46. char k;
  47. int n = strlen(str);
  48. for(int i=0; i < n; i++)
  49. if ((*(str + i)) == '(' || (*(str + i)) == ')' || (*(str + i)) == '[' || (*(str + i)) == ']' || (*(str + i)) == '{' || (*(str + i)) == '}')
  50. str2[k] = *(str + i);
  51.  
  52. return k;
  53. }

Решение задачи: «Ввести строку символов, если ее длина кратна 5, посчитать количество скобок всех видов»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 100
  4. int main()
  5. {
  6.     char samples[] = "[]{}()<>";
  7.     char str[N], braces[N];
  8.     int i, j, k = 0;
  9.     for(i = 0; ((str[i] = getchar()) != '\n') && i < N; i++){
  10.         for(j = 0; samples[j]; j++){
  11.             if(str[i] == samples[j]){
  12.                 braces[k++] = str[i];
  13.                 break;
  14.             }
  15.         }
  16.     }
  17.     braces[k] = '\0';
  18.     if(k == 0)
  19.         puts("Braces not found");
  20.     else{
  21.         if(i % 5 == 0){
  22.             printf("Quantity of braces = %d\n", k);
  23.             puts(braces);
  24.         }
  25.         else
  26.             puts("Line length is not divide of 5");
  27.     }
  28.     return 0;
  29. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы