//与上一函数基本相似,只不过本函数使用是移位操作改变字符指针指向
char* strrev3(const char* str)
{
char* tmp = new char[strlen(str) + 1];
strcpy(tmp,str);
char* ret = tmp;
char* p = tmp + strlen(str) - 1;
while (p > tmp)
{
*p ^= *tmp;
*tmp++ ^= *p;
*p-- ^= *tmp;
}
return ret;
}
//节省几步,直接给新建的字符数组赋反转的值,呵呵,简单明了,只不过循环多执行几次
char* strrev4(const char* str)
{
char * temp = new char[strlen(str)];
for(int i = 0; i <= strlen(str); i++)
{
temp[i] = str[strlen(str) - i -1];
}
return temp;
}