这里我们自己实现一个将字符串逆序的函数reverse(char*str),这个函数的逻辑是,我们左边找第一个字符,最右边找最后一个字符,将这一对字符串交换。然后在找下一对,一直找到他们中间只剩一个字符,或者没有字符我们停止交换。下面我们来实现这个函数。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void reverse(char* str)
{
int len = strlen(str);
char* left = str;
char *right = str+len - 1;
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[] = "hello world";
reverse(arr);
printf("%s \n", arr);
return 0;
}
函数内部使用一个库函数strlen()来获取字符串长度,使用函数时一定要写上#include<string.h>这个头文件,这个库函数在前面的博客中也有写到。