#UVa:492-Pig-Latin

灆洢 2015-01-26 23:46:37

照著題目要求的去解析字串即可。

C++(0.089)

/*******************************************************/
/* UVa 492 Pig-Latin                                   */
/* Author: Maplewing [at] knightzone.studio            */
/* Version: 2015/01/26                                 */
/*******************************************************/
#include <iostream>
#include <string>
#include <cstdio>
#include <cctype>
using namespace std;

int main(){
  string line;
  while( getline(cin, line) ){
    bool isWord = false;
    char firstLetter;
    for( int i = 0 ; i < line.length() ; ++i ){
      if( isalpha(line[i]) ){
        if( !isWord ){
          firstLetter = line[i];

          switch( tolower(line[i]) ){
            case 'a': case 'e':
            case 'i': case 'o':
            case 'u':
              firstLetter = '\0';
              printf("%c", line[i]);
              break;
            default:
              firstLetter = line[i];
              break;
          }

          isWord = true;
        }
        else{
          printf("%c", line[i]);
        }
      }
      else {
        if( isWord ){
          if( firstLetter != '\0' ){
            printf("%c", firstLetter);
          }
          printf("ay");
          isWord = false;
        }

        printf("%c", line[i]);
      }
    }
    printf("\n");
  }

  return 0;
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料