1. 程式人生 > >CodeForces-118A

CodeForces-118A

問題連結:https://vjudge.net/problem/CodeForces-118A

問題簡述:

去除輸入的一串字串中的母音字母,並將剩餘的字元中的大寫字母轉化為小寫字母,再以“.”隔開每個字元並輸出結果。

問題分析:

利用gets函式將字串中的每個字元分別存於字元陣列中,用strlen函式判斷字串長度,再利用迴圈逐步判斷每個字元是否為母音字元,若是,則不輸出,若不是,則再判斷字元是否處於大寫字母區間內,若是,則將該字元ASCLL值+32再轉化為字元將其轉化為小寫字母。最後輸出結果

程式說明:

本程式用gets函式處理輸入的字串,再定義兩個函式分別處理判斷母音字母與迴圈輸出的問題,其中判斷母音字母情況較多,選擇了switch結構。

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

#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
char a[100];
int vowels(char a[],int i)
{
	switch(a[i])
	{
		case 'A':case 'E':case 'I':case 'O':case 'U':case 'Y':case 'a':case 'e':case 'i':case 'o':case 'u':case 'y':
			return 1;
		default:
			return 0;
	}
}
void out(char a[],int length)
{
	for(int i=0;i<length;i++)
	{
		if(!vowels(a,i))
		{
			if(a[i]>='A'&&a[i]<='Z')
			{
				cout<<"."<<(char)(a[i]+32);
			}
			else
			{
				cout<<"."<<a[i];
			}
		}
	}
}
int main()
{
	int l;
	gets(a);
	l=strlen(a);
	out(a,l);
}