今天將指針和函數全部學完了,之前這題的做法,現在看來有點繁瑣,于是乎做了一些修改,下面是新的代碼
//you are from shanghai逆序#include <stdio.h>
#include <string.h> //下面要用到strlenvoid reverse(char* str);int main()
{char str[] = "you are from shanghai";reverse(str); //全部逆序char* p1 = str; char* p2 = str;while (*p2) //p2向后移動{ if (' ' == *p2) //遇到空格則將上一個單詞進行逆序{*p2 = '\0'; reverse(p1);*p2 = ' ';p1 = p2 + 1;}p2++;}reverse(p1); //將‘\0’之前的那個單詞逆序puts(str); //輸出return 0;
}void reverse(char* str) //函數功能:在一段范圍內進行逆序
{int len = strlen(str);int min = 0;int max = len - 1;while(min < max){int tmp = str[min];str[min++] = str[max];str[max--] = tmp;}
}