第一步
首先创建一个字符串数组,然后通过sizeof计算出数组元素个数,之后利用自定义函数将数组内容逆序
int main()
{
char arr[] = { "hello bit" };
int sz = sizeof(arr) / sizeof(arr[0]);
printf("%s\n", arr);
reverse(arr, sz);
在运用reverse函数时,需要传输数组首元素地址和数组元素个数。
第二步
在reverse函数中,通过数组首元素地址和‘\0’前一位元素的地址解引用,使第一个元素和最后一个元素的内容互换,然后首元素地址++和末元素地址--,使整个数组逆序。
代码和运行截图
void reverse(char arr[],int sz)
{
char* ptr = arr;
char* p = arr + sz - 2;
while (ptr < p)
{
char tmp = *ptr;
*ptr = *p;
*p = tmp;
ptr++;
p--;
}
}
int main()
{
char arr[] = { "hello bit" };
int sz = sizeof(arr) / sizeof(arr[0]);
printf("%s\n", arr);
reverse(arr, sz);
printf("%s\n", arr);
return 0;
}