Reverse left most and right most SWAP and left most++ and right most --
A C-style string is a NULL-terminated sequence of characters stored in a C++ array. ASCII 0 designates the NULL character. A string literal, which is a sequence of characters enclosed in double quotes, is a C-style string
char str[] = "A String";
The string is stored in memory as a 9 element character array.
A S t r i n g NULL
|
str
char *s1 = "hi lol";
char s2[] = "hi haha";
*s1 => 'h';
*s1++ => 'i';
*s1++ => ' ';
*s1 => 'h';
*s1++ => 'i';
*s1++ => ' ';
2. Implementation
void reverse (char *str) { char *end = str; // a new pointer point to str char tmp; if ( str ) { // 1. Get the right most char while (*end) ++end; --end; // back one char from last '0' char // 2. Get the left most char , str It is // 3. Start Swapping while ( str < end ) { tmp = *str; // left most to tmp *str++ = *end; // left most and right most SWAP and left most ++ *end-- = tmp; // right most assign and right most -- } } }3. Similar Ones
No comments:
Post a Comment