C語言:字符數組的內容為:"student a am i",內容改為"i am a student".只能開辟有限個空間
#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不一樣,求長度求的是包括字符串結束標志\0的長度,真正的字符串長度len為
=sizeof(arr)/sizeof(arr[0])-1; 在確定right 長度時還要用len-1。
此處的void 型是因為該題只是把字符串地址換一下而已,並沒有做其他變換,所以也不需要返回值。