#include <iostream>
#include <cstring>
using namespace std;
char *strrev1(const char * str)
{
const size_t length = strlen(str);
char *temp = new char[length];
strcpy(temp, str);
for (size_t i = 0; i < length/2; ++i)
{
char c = temp[i];
temp[i] = temp[length - i - 1];
temp[length - i - 1] = c;
}
return temp;
}
char *strrev2(const char *str)
{
char *temp = new char[strlen(str)];
strcpy(temp, str);
char *ret = temp;
char *p = temp + strlen(str) - 1;
while (p > temp)
{
/* 三种数据交换方式 */
// 方式一
/* *p ^= *temp; */
/* *temp ^= *p; */
/* *p ^= *temp; */
/* --p; */
/* temp++; */
// 方式二
/* char c = *temp; */
/* *temp++ = *p; */
/* *p-- = c; */
// 方式三
char c = *temp;
*temp = *p;
*p = c;
--p;
++temp;
}
cout << ret << endl;
return ret;
}
int main()
{
std::cout << "Hello world" << std::endl;
char str[] = "asdfasdf";
char *c = strrev2(str);
cout << c << endl;
return 0;
}
面试笔记-字符串反转
最新推荐文章于 2024-04-20 21:51:33 发布