1. 程式人生 > >PTA 5-32說反話-加強版

PTA 5-32說反話-加強版

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

輸入格式:

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

輸出格式:

每個測試用例的輸出佔一行,輸出倒序後的句子,並且保證單詞間只有1個空格。

輸入樣例:

Hello World   Here I Come

輸出樣例:

Come I Here World Hello
#include <iostream>
#include <stdlib.h>
#include <cstdio>
#include <string>

using namespace std;
int main()
{
    char str1[500001];
    gets(str1);
    char str2[] = " ";
    char *result = NULL;
    char *resultCopy[250001];
    int cout = 0;
    result = strtok(str1, str2);//呼叫strtok(char *s,const char *c)函式,分隔字元.把s中包串c的部分提取出來,返回給s
    while ( result != NULL ) {
        cout ++;
        resultCopy[cout - 1] = result;
        printf("%s\n",result);
        result = strtok(NULL, str2);
    }
    int flag = 0;
    int i;
    for ( i = cout - 1; i >= 0; i -- ) {
        if ( flag != 0 ) {
            printf(" ");
        }
        flag ++;
        printf("%s", resultCopy[i]);
    } 
    return 0;
}