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

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

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

Ввести строку символов, если ее длина кратна 5, посчитать количество скобок всех видов, выделив их в отдельную строку
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <malloc.h>
#include <string.h>
void substringToSpace(char*, char*);
int firstSpace(char*);
void main()
{
    setlocale(LC_CTYPE,"Russian");
    char str[100]; //выделение памяти под строку
    char brackets[]="[{()}]";
    puts("Введите строку максимум из 100 символов:");
    gets_s(str);
    int n = strlen(str);
    if(n %5==0)
    {
        char k = *brackets;
        (str);
        if(k == -1)
        {
            puts("Скобок в строке не найдено");
        }
        else
        {
            char* str2 = new char[k+1];
            substringToSpace(str, str2);
            printf("Исходная строка:%s\n", str);
            printf("Преобразованная строка (скобки):%s\n", str2);
            delete str2;
        }
    }
    else
        puts("Строка не кратна 5.");
}
void substringToSpace(char* str, char* str2)
{
    int k = firstSpace(str);
    for(int i=0; i<k; i++)
    str2[i] = str[i];
    str2[k] = '\0';
}
int firstSpace(char* str)
{
    char str2[]="[{()}]";
    char k;
    int n = strlen(str);
        for(int i=0; i < n; i++)
            if ((*(str + i)) == '(' || (*(str + i)) == ')' || (*(str + i)) == '[' || (*(str + i)) == ']' || (*(str + i)) == '{' || (*(str + i)) == '}') 
            str2[k] = *(str + i); 

        return k; 
}

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 100
int main()
{
    char samples[] = "[]{}()<>";
    char str[N], braces[N];
    int i, j, k = 0;
    for(i = 0; ((str[i] = getchar()) != '\n') && i < N; i++){
        for(j = 0; samples[j]; j++){
            if(str[i] == samples[j]){
                braces[k++] = str[i];
                break;
            }
        }
    }
    braces[k] = '\0';
    if(k == 0)
        puts("Braces not found");
    else{
        if(i % 5 == 0){
            printf("Quantity of braces = %d\n", k);
            puts(braces);
        }
        else
            puts("Line length is not divide of 5");
    }
    return 0;
}

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

10   голосов , оценка 4.2 из 5
Похожие ответы