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.
问题链接:https://vjudge.net/problem/CodeForces-118A
问题简述:输入包含1-100的一串字母,包含大写字母跟小写字母,删除所有元音字母,在所有辅音字母前面加个.,把所有的大写辅音字母用相应的小写字母替代,程序输出是一个字符串,输出单个的字符串,在程序处理最初的字符串后产生
问题分析:用char数组将输入的字母字符串存储,用循环语句中的switch语句逐个判断字母是否为元音字母,如果是则把数组中的元音字符后的元素全部向前移动一位(相当于删除),再判断是否为大写辅音,如是则用小写字母的ascill码值替换,最后建立一个201存储容量大小的char数组,每将一个原本数组中的元素添加进新数组前加一个.即可
AC通过的C++语言程序如下:
#include <iostream>
using namespace std;
int main()
{
static char st[101];
cin >> st;
int n = 0;
while (st[n] != '\0')
{
switch (st[n])
{
case 65:case 69:case 73:case 79:case 85:case 89:case 97: case 101:case 105: case 111:case 117:case 121:
{
int e = n;
while (st[e] != '\0')
{
st[e] = st[e + 1];
e++;
}
break;
}
default:
{
if (st[n] <= 90)
{
st[n] = st[n] + 32;
}
n++;
break;
}
}
}
char nw[201] = {'\0'};
int k = 0, j = 0;
while (st[k] != '\0')
{
nw[j] = 46;
nw[j + 1] = st[k];
k++;
j = j + 2;
}
cout << nw;
}