字符串的倒序输出,常常有两中方法:
一. 常规方法:
#include <stdio.h>
#include <string.h>
void StringReverse(char *str)
{
if(NULL == str)
{
return ;
}
char *pBegin = str;
char *pEnd = str + strlen(str) - 1;
while(pBegin < pEnd)
{
char tmp = *pBegin;
*pBegin = *pEnd;
*pEnd = tmp;
pBegin ++, pEnd --;
}
}
int main()
{
char str[] = "123456789";
StringReverse(str);
printf("%s\n",str);
}
二.由链表的从尾到头输出联想到的:
链表倒序输出:
void PrintListReversely(ListNode* pListHead)
{
if(pListHead != NULL)
{
// Print the next node first
if (pListHead->m_pNext != NULL)
{
PrintListReversely(pListHead->m_pNext);
}
// Print this node
printf("%d", pListHead->m_nKey);
}
}
字符串倒序输出:
#include "stdio.h"
void printListReverse(char *p)
{
if('\0' != *p)
{
printListReverse(p + 1);
printf("%2c",*p);
}
}
void main()
{
char *string = "1234567";
printListReverse(string);
printf("\n");
}