using namespace std;
void reverse(char a[],int slen, int elen)
{
int start,end,temp;
for(start=slen,end=elen;start<end;start++,end--)
{
temp=a[start];
a[start]=a[end];
a[end]=temp;
}
}
void reverseall(char b[])
{
int b_len = strlen(b);
int i,j,n=0,len;
char* a = (char*)malloc((b_len + 1) * sizeof(char));
for(i = 0; i < b_len; i++)
a[b_len - i - 1] = b[i];
a[b_len] = '\0';
i=0;
j=0;
while(a[i]!='\0')
{
n++;
i++;
}
while(j!=n)
{
if(j!=0)
j++;
len=0;
while(a[j]!= ' ' && a[j]!='\0')
{
len++;
j++;
}
reverse(a,j-len,j-1);
}
for(i=0;i<n;i++)
cout<<a[i];
free(a);
}
int main()
{
char b[20]="hi how are you";
reverseall(b);
return 0;
}