#include <iostream>
using namespace std;
char* Wide(char* Str, int Size)
{
char *Result = new char[Size+1];
memset(Result, 0, Size+1);
char *ptr = Str;
int cnt = 0;
while (strstr(ptr," "))
{
ptr = strstr(ptr," ")+1;
cnt++;
}
if (cnt == 0) cnt++;
int m = (Size-strlen(Str))/cnt + 1;
ptr = Result;
int allprob = cnt*m - cnt;
int vcnt = 0;
for (int i = 0; i<strlen(Str); i++)
{
if (Str[i] == ' ')
{
for (int j = 0; j< m; j++)
{
if (strlen(Result) < Size)
{
*ptr++ = ' ';
vcnt++;
}
if (vcnt == cnt && (strlen(Str) + allprob < Size))
{
for (int i = 0; i<Size - (strlen(Str) + allprob); i++)
*ptr++ = ' ';
}
}
}
else *ptr++ = Str[i];
}
return Result;
}
void main(void)
{
setlocale(LC_ALL,"Russian");
char buffer[1024];
int Size;
cout<< "Введите исходную строку : ";
cin.getline(buffer,1023);
cout<<"Введите кол-во пунктов выравнивания Size = ";
cin >> Size;
cout<< endl << "Результат : " << endl;
cout<<Wide(buffer,Size) << endl;
}