Description
ACM成立大会之后,uncle_b被其中一个大一女孩深深地吸引,但腼腆的B叔又不知道如何去表达自己内心的想法,经calmound神的指导,B叔决定写封情书给对方.他从Tamara那里,了解到了那个女孩叫做Lyv,而且爱好英语.B叔不好意思太直接地表达,就在情书的写法上加了一些变化.
寄过去之后,那个女孩不明白其中的含义,只在信的最后看到了一个提示,你能根据提示告诉那个女孩B叔想说的话吗?帮帮善良的B叔追到女朋友吧~~~
信上提示如下:情书中凡是女孩名字中有的字母(即L,Y,V,不分大小写)全部保留,并保留所有的元音字母(AEIOU,不分大小写)和空格,其余字母均舍去.注意,若处理完之后两个单词之间有多个空格,只保留一个,句首句末都不能是空格。
Input
输入一行字符串,仅有大小写字母和空格组成,字符串的长度len(1=<len<=100);
Output
输出处理好的字符串
Sample Input
hI plSorTver mst YcXosu
Sample Output
I love You
解题思路:这是一道对字符串操作的题目,存在的坑点就是空格的存在,空格可能会开头,结尾,单词单词之间存在多个,这时候需要做好控制
1 #include <iostream> 2 #include<stdio.h> 3 #include<string.h> 4 using namespace std; 5 int main() 6 { 7 char s[110],x[110]; 8 int i,j,len,flag=0; 9 gets(s); 10 len=strlen(s); 11 j=0; 12 memset(x,0,sizeof(x)); 13 for(i=0; i<len; i++) 14 { 15 if(s[i]=='A'||s[i]=='a'||s[i]=='e'||s[i]=='E'||s[i]=='I'||s[i]=='i'||s[i]=='o'||s[i]=='O'||s[i]=='U'
||s[i]=='u'||s[i]=='L'||s[i]=='l'||s[i]=='Y'||s[i]=='y'||s[i]=='V'||s[i]=='v') 16 { 17 x[j++]=s[i]; 18 flag=1; 19 } 20 if(s[i]==' '&&flag==1)///只保存单词之后出现的第一个空格 21 { 22 flag=0; 23 x[j++]=s[i]; 24 } 25 } 26 while(x[j-1]==' ')///结尾可能会出现多个空格,这里使用循环将其一一去除 27 { 28 j--; 29 } 30 x[j]='