1. 程式人生 > >PAT(Basic Level) Practice——1009 說反話

PAT(Basic Level) Practice——1009 說反話

原題目:

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。

輸入格式:

測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字串。字串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。

輸出格式:

每個測試用例的輸出佔一行,輸出倒序後的句子。

輸入樣例:

Hello World Here I Come

輸出樣例:

Come I Here World Hello

分析:

1.記得別的語言有可以分割字串的方法,C語言沒注意有什麼好用的,只有硬核程式設計解題了,太菜了,沒別的。

程式碼:

C語言版:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int N,M,i=0,j,k=100,s=0;
    char Str[100];
    gets(Str);//讀取字串
    s=strlen(Str);//獲取字串長度
    s--;//從最後一個字元開始
    for(i=s,k=s;i>=0;i--)//從最後一個字元開始迴圈,直到字元列印完成
    {
        if(Str[i]==' ')//若遇到空格,則將i+1到K的字元列印,並更新K值為空格的前一位
        {
            for(j=i+1;j<=k;j++)
            {
                printf("%c",Str[j]);
            }
            k=i-1;
            printf(" ");
        }
        else if(i==0)//對於第一單詞,也就是反過來的最後一個是不用列印空格的,所以單獨處理
        {
            for(j=i;j<=k;j++)
            {
                printf("%c",Str[j]);
            }
            k=i-1;
        }

    }
    return 0;
}