1、数组法:
#include<stdio.h>
#include<string.h>
void nixu(char arr[])
{
int len = strlen(arr);
int r = len - 1;
int l = 0; //l表示left,r表示right
while ( l<=r )
{
char tmp = arr[l];
arr[l++] = arr[r]; //如果是arr[l++]=arr[r--]就会发生覆盖
arr[r] = tmp;
r--;
}
}
int main()
{
char arr[] = { "abcdef" };
nixu(arr);
printf("%s", arr);
return 0;
}
2、指针法:
#include<stdio.h>
#include<string.h>
void nixu(char* arr)
{
int len = strlen(arr);
//int sz = sizeof(arr) / sizeof(arr[0]);不用它,sz=7,因为用sizeof计算字符串大小要包括末尾的'\n'。
char *l = arr;
char *r = arr + len - 1;
while ( l<=r )
{
char tmp = *l;
*l = *r;
*r = tmp;
l++;
r--;
}
}
int main()
{
char arr[] = { "abcdef" };
nixu(arr);
printf("%s", arr);
return 0;
}