#include<stdio.h>
#include<string.h>
void rec(char* arr)
{
//int len = sizeof(arr); // 判断字符串长度需要用strlen。
int len = strlen(arr);
printf("字符串长度len = %d\n", len);
char* p1 = arr;
char* p2 = &arr[len - 1];
while (p1 < p2)
{
char temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main()
{
char arr[] = "hello world";
rec(arr);
printf("逆序之后输出为:%s\n", arr);
system("pause");
return 0;
}
知识点:
- 判断字符串长度需要用到string.h下的strlen函数方法。
- 算法层面:
- 逆序就是头尾逐位交换,所以选定两个指针,一个在首,一个在尾。
- 指针可以直接比较大小。所以才有了while(p1<p2)来将算法执行的终点找到。
- 因为传入函数方法rec的是地址,所以可以直接修改了原始数据。为了如果为了保护原始数据,需要复制一份另用。