有一個字符數組的內容爲“student a am i”,請你將數組的內容改爲“i am a student”
不能使用庫函數。只能開闢有限個空間(空間個數和字符串的長度無關)
#include <stdio.h> #include<stdlib.h> void reverse(char *left, char *right) { while(left<right) { char tmp = *left; *left = *right; *right = tmp; left++; right--; } } void reverse_str(char arr[], int sz) { char *left = arr; char *right = arr+sz-1; char *start = arr; char *end = arr; reverse(left, right); while(*end != '\0') { while((*end != ' ') && (*end != '\0')) { end++; } reverse(start, end-1); if(*end != '\0') { start = end+1; end = start; } } } int main() { char arr[] = "student a am i"; int sz = sizeof(arr)/sizeof(arr[0])-1; reverse_str(arr, sz); printf("%s\n",arr); system("pause"); return 0; }