文字列を逆にすることができます。たとえば、「文字列を逆にする」を「gnirtsを削除する」に逆にすることができます。しかし、「stringareverse」のように一語一語逆にすることはできません。
void reverseString(char string[],char *start, char* end)
{
char tmp; //temporary variable to swap values
int count = 0;
while(start<end)
{
if(*start==' ')
{
printf("found space count %d \n",count);
reverseString(string,start-count,start);
}
tmp = *start;
*start = *end;
*end = tmp;
*start++;
*end--;
count++;
}
printf(" string %s \n", string);
}
int main()
{
char string[] = "reverse a string word by word";
char *start =string;
char *end =start+ strlen(string) -1;
reverseString(string,start,end);
return 0;
}