《程序员面试金典》(第六版)习题:仅为记录一下以加强印象,不为商业用途,如有侵权请联系删除。以下源码和解释参考了书中源码以及解释。
算法比较简单。分别从字符的第个字符和最后一个真真的字符(不是结尾字符)开始向中间进行字符的交换直到左边的字符索引大于等于右边的字符索引。只需要c字符串以字符
′
\
0
′
'\backslash0'
′\0′结尾即可。
void reverse(char * str)
{
char* end = str;
char temp;
if (str)
{
while (*end)
{
++end;
}
--end;
while (str<end)
{
temp = *str;
*str++ = *end;
*end-- = temp;
}
}
}
int main()
{
char cStyleString[6] = { 'c','h','i','n','a','\0'};
reverse(cStyleString);
cout << cStyleString << endl;
}