Добрый день, уважаемые участники форума!
Недавно с ужасом обнаружил факт, размещенный в заголовке темы и прошу у вас помощи в ликвидации столь досадного недоразумения.
Задача: выравнивание текста по ширине, с введением этой самой ширины и текста пользователем.
Решение(Начало): посимвольное чтение этого текста с помощью getchar(), использование динамического массива. Куча недоработок с "динамичностью", но пока нет нормального ввода(соль в том, что надо обойтись без gets())!Код с комментариями:
#include <stdio.h>
#define TRUE 1
#define START_SIZE 10 /* по замыслу начальный размер динамического массива, так мало
что бы потом удобнее было наблюдать за realloc()*/
char* JustifyText(char const *str, int width); //прототип функции, которой пока нет
int main(void)
{
        int width;
        char *st_ptr = malloc(START_SIZE * sizeof(char)); //начальный адрес
        char *cur_ptr = st_ptr; //указатель с которым идет работа
        printf("Task E-11: Text alignment. Please, input width: \n");
        while(TRUE) /////////////////////////////////////////////////
        {
         printf("Width: ");
         do{
     scanf("%i", &width); //вводим ширину
         if(width<=0)
          printf("Incorrect value for width, try again\n");
         }while(width<=0);
     //getchar(); // попытка нейтрализовать ошибку, о которой пойдет речь
     printf("Now, please, input text for alignment\n");
          
         while(TRUE)
         {
         *st_ptr = getchar();
         if(*st_ptr='\n') //как только нажимается Enter - конец ввода
/*Здесь основная проблема - когда мы пишем ширину (ранее) мы жмем Enter*/
           break;
         ++st_ptr;
     }
    }//////////////////////////////////////////////////////////////
return 0;
}
  Вот, в общем можно было бы реально начать писать работу с динамическим массивом и саму функцию, но без ввода как-то досадно.