#include<stdio.h> void my_reverse(int len ,char arr[]) { int left =0; int right = len -1; while(left < right) { char tmp = arr[left]; arr[left] = arr[right]; arr[right] =tmp; left ++; right --; } } int main() { char arr[] = "tneduts a ma i"; int len =sizeof(arr)/sizeof(arr[0])-1; my_reverse(len,arr); printf("%s\n",arr); return 0; }
将字符串逆置输出:
首先,sizeof与strlen不一样,sizeof求长度求的是包括字符串结束标志\0的长度,真正的字符串长度len=sizeof(arr)/sizeof(arr[0])-1; 在确定right 长度时还要用len-1。
此处的void 型是因为该题只是把字符串地址换一下而已,并没有做其他变换,所以也不需要返回值。