Ожидание введения данных в структуре Switch - case
столкнулся с проблемой, что в структуре 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;
}
Заранее благодарю за помощь!
Источник: Stack Overflow на русском