CodeForces-118A
阿新 • • 發佈:2018-12-10
問題連結: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); }