字符串逆序的几种方法
1.普通逆序
分配一个与原字符串等长的字符数组;
反向拷贝一下即可。
char* reverseString(char* s)
{
//将q指向字符串最后一个字符
char* q = s ;
while( *q )
{
q++;
}
q -= 1 ;
//分配空间,存储逆序后的字符串。
char* p = (char*)malloc(sizeof(char*)*(q-s+1));
char* r = p ;
// 逆序存储
while(q >= s)
{
*p=*q;
*p++;
*q--;
}
*p = '\0' ;
return r ;
}
2.原地逆序
英文叫做in-place reverse。这是最常考的,原地逆序意味着不允额外分配空间,主要有以下几种方法,思想都差不多,就是将字符串两边的字符逐个交换。
方法一:
设置两个指针