Ожидание введения данных в структуре Switch - case

Рейтинг: 0Ответов: 1Опубликовано: 10.04.2023

столкнулся с проблемой, что в структуре switch - case, при выборе блока где необходимо ввести данные, он не ожидает введения данных, а прогоняет все тело и завершает работу Часть кода:

case 2:
    {
        char str[MAX_LENGTH]; // создаем массив для хранения введенной строки
        printf("Введите строку символов: ");
        fgets(str, MAX_LENGTH, stdin); // считываем строку символов из консоли

        int len_str = strlen(str); // вычисляем длину строки
        char* reversed = (char*)malloc(len_str + 1); // выделяем память под отзеркаленную строку

        
        
            char* ptr, * rev_ptr;
            ptr = str; // присваиваем указателю ptr адрес начала массива str
            rev_ptr = reversed; // присваиваем указателю rev_ptr адрес начала массива reversed

            // перебираем элементы строки str с конца и копируем их в массив reversed при помощи указателей
            int i;
            for (i = len_str - 1; i >= 0; i--) {
                *(rev_ptr++) = *(ptr + i); // увеличиваем указатель rev_ptr, чтобы записывать следующие символы в правильном порядке
            }

            *(rev_ptr) = '\0'; // добавляем завершающий символ в конец перевернутой строки

            printf("\n\033[38;2;95;255;175mМассив с символами:\033[0m ''%s''\n\n", str); // выводим исходную строку
            printf("\033[38;2;95;255;175mОтзеркаленый массив с символами:\033[0m ''%s''\n", reversed); // выводим перевернутую строку

            free(reversed); // освобождаем выделенную память
            return 0; 
        
    }

Заранее благодарю за помощь!

Ответы

▲ -2

Разобрался сам, достаточно было после:
printf("Введите строку символов: ");
Добавить:
getchar()

Может кому-то в будущем пригодится