In C++ Define a C-string function void mirror(char * w) that reverses the order
ID: 3902758 • Letter: I
Question
In C++
Define a C-string function
void mirror(char * w)
that reverses the order of the characters in w. For example, if w is "green" than after calling mirror(w), w will be "neerg" (meaning, "red" since that's opposite green on the color wheel!). Use pointer notation. No square brackets allowed. Hint: get a pointer p to the last character in w (before the null terminator). Then swap *w and *p. Next, increment w and decrement p to continue the process until p <= w.
http://www.chabotcollege.edu/Faculty/jtraugott/CodeLab/mirror.cpp
Explanation / Answer
Program
#include <string.h>
#include <iostream>
using namespace std;
void mirror(char *w);
int main()
{
char s[] = "green";
mirror(s);
cout << s << endl;
}
void mirror(char *w)
{
char *pEnd = w + (strlen(w) - 1);
while (w < pEnd)
{
char c = *w;
*w++ = *pEnd;
*pEnd-- = c;
}
}
Output
neerg