#include <iostream>
#include <cstring>
using namespace std;
void my_reverse(char* p) //第一种
{
int len = strlen(p); //获取字符串长度
for (int i = 0; i < len / 2; i++) //无论长度是奇数还是偶数,该for循环都能解决
{
char t = p[i];
p[i] = p[len - i - 1];
p[len - i - 1] = t;
}
}
void my_reverse2(char* p) //第二种
{
int len = strlen(p);
char* end = p + len - 1;
while (p < end) //只有左边指针所指示的位置小于右边就循环下去,等两者相等或左边指针大于右边指针位置时终止
{
char t = *p;
*p = *end;
*end = t;
p++;
end--;
}
}
int main()
{
char str[20] = "hello world!";
printf("%s\n", str);
my_reverse(str);
printf("%s\n", str);
my_reverse2(str);
printf("%s\n", str);
return 0;
}
数组逆序(以字符串逆序为例)
最新推荐文章于 2024-10-05 12:07:50 发布