Hi ,
I have written a piece of code to reverse a sentence by reversing individual words at a time..
I have tried it and it works fine.
Code:
#include <stdio.h>
#include <string.h>
void reverseWords( char* );
int main(void)
{
char string[] = "String to reverse";
printf("\nOriginal string is : %s\n", string);
reverseWords( string );
printf("\nReverse string is : %s\n", string);
}
void reverseWords( char* string )
{
char temp;
char *start = string;
char* end = start;
char* endPtr = string;
while(*endPtr != '\0')
{
start = endPtr;
end = endPtr;
while(!isspace(*end))
{
end++;
if(*end == '\0')
break;
endPtr = end;
endPtr++;
}
end--;
while(start<end)
{
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
}
Though it works fine I think the code can be improved further. Can someone help me optimize it.
Thanks.