C程式設計——將“We are from ShangHai”,以“ShangHai from are We”倒序輸出
阿新 • • 發佈:2018-12-01
**1、**程式
#include <stdio.h> #include <string.h> int strLen(char *); void reverse(char *); int main() { int count = 0; char str[99]; printf ("請輸入你想逆序的字串:"); fgets (str, 99, stdin); str[strlen(str)-1] = '\0'; /* 從從終端輸入一個字串到字元陣列, 並且得到一個函式值。 該函式值是字元陣列的起始地址。 第一個引數:字元陣列 第二個引數:要讀的資料長度 第三個引數:檔案指標,用stdin代表標準輸入 因為使用fgets()函式在輸出時,會將字串結束標誌'\0'轉換成'\n' 故需要將末端的置為'\0' 便於後面的判斷 */ reverse(str);//將整個句子逆序 char *p1 = str; char *p2 = str; while (*p2)//將單詞逆序 { if (' ' == *p2)//定位到第一個單詞後的空格 { *p2 = '\0'; reverse(p1);//將第一個單詞逆序 *p2 = ' '; p1 = p2 + 1;//將p1定位到第二個單詞起始處 } p2++; } reverse(p1);// 3、將最後一個單詞逆序 printf ("%s\n", str); return 0; } int strLen(char *pStr) { if (pStr == NULL) return -1; int len = 0; while(*(pStr++)) { len++; } return len; } void reverse(char *pStr) { int left = 0; int right = strLen(pStr)-1; while (left<right) { char tmp = pStr[left]; pStr[left++] = pStr[right]; pStr[right--] = tmp; } }
**2、**測試結果
請輸入你想逆序的字串:We are from ShangHai
逆序結果為:ShangHai from are We