1. 程式人生 > >ACM訓練題-第一題-String Task

ACM訓練題-第一題-String Task

Time limit2000 msMemory limit262144 kB
total:Time 62ms Memory16kB

Problem Description:
Petya started to attend programming lessons. On the first lesson his task was to write a simple program. The program was supposed to do the following: in the given string, consisting if uppercase and lowercase Latin letters, it:

deletes all the vowels,
inserts a character “.” before each consonant,
replaces all uppercase consonants with corresponding lowercase ones.
Vowels are letters “A”, “O”, “Y”, “E”, “U”, “I”, and the rest are consonants. The program’s input is exactly one string, it should return the output as a single string, resulting after the program’s processing the initial string.
Help Petya cope with this easy task.

Input
The first line represents input string of Petya’s program. This string only consists of uppercase and lowercase Latin letters and its length is from 1 to 100, inclusive.

Output
Print the resulting string. It is guaranteed that this string is not empty.

Examples:
Input:tour
Output:.t.r
Input:Codeforces
Output:.c.d.f.r.c.s
Input:aBAcAba
Output:.b.c.b

問題連結:https://vjudge.net/problem/CodeForces-118A
問題簡述:
輸入字串。此字串僅由大寫和小寫拉丁字母組成,其長度為1到100(包括1和100)。
刪除所有母音,
在每個子音之前插入一個字元“ . ”
將所有大寫子音替換為相應的小寫子音。
母音是字母“A”,“O”,“Y”,“E”,“U”,“I”,其餘是子音。
輸出生成的字串。保證此字串不為空。

程式說明:先用一個函式把所有大寫字母轉換為小寫字母,再把aeiouy排除出去,輸出時前加“."輸出。

AC通過的C++語言程式如下:

#include <iostream>
using namespace std;
int main()
{
	char a[101];   //定義101個字元,保證測試時不會溢位
	int i = 0;
	cin >> a;
	for (; a[i]; i++)
	{
		if (a[i] >= 'A'&&a[i] <= 'Z')    //把所有大寫字母轉化為小寫字母
			a[i] += 32;
	}
	for (i = 0; a[i]; i++)
		if (a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u' || a[i] == 'y')    //把aeiouy等等母音字母排除
			a[i] = '/0';
		else cout << "." << a[i];
}