给定一个由大小写字母构成的字符串,请你对该字符串进行如下处理:
- 将所有大写字母替换为相应的小写字母。
- 删除其中的所有元音字母。
- 在每个辅音字母前面插入一个?
. 。
字母?a ,o ,y ,e ,u ,i ?为元音字母,其余字母均为辅音字母。
注意,y ?其实是半元音字母,在本题中规定其为元音字母。
输入格式
一个由大小写字母构成的字符串。
输出格式
输出处理后的字符串。
保证处理后的字符串不为空。
数据范围
所有测试点满足,字符串长度范围?[1,100][1,100]。
输入样例1:
tour
输出样例1:
.t.r
输入样例2:
aBAcAba
输出样例2:
.b.c.b
方法一:
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string s;
int flag = 0;
char ss[105];
scanf("%s", &ss);
s = ss;
for(int i = 0; i < s.length(); i ++)
{
if(s[i] >= 'A' && s[i] <= 'Z')
s[i] = s[i] + 32;
}
for(int i = 0; i < s.length(); i ++)
{
if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y'){
continue;
}
cout << '.' << s[i];
}
return 0;
}
方法二:
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string s;
char ss[105];
scanf("%s", &ss);
s = ss;
for(int i = 0; i < s.length(); i ++)
{
if(s[i] >= 'A' && s[i] <= 'Z')
s[i] = s[i] + 32;
}
for(int i = 0; i < s.length();)
{
if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y')
{
string :: iterator it = s.begin() + i ;
s.erase(it);
}
else i++;
}
for(int i = 0; i < s.length(); i ++)
{
cout << '.' << s[i];
}
return 0;
}
|