概述
这个题直接看上去好像很麻烦,得把大写字母转化成小写字母,删除其中的元音字母,在每个辅音字母前加.,刚做这个题想了好多,的构建插入和删除函数,其实不用,元音跳过,辅音直接带点输出就好了。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char a[105];
int main()
{
scanf("%s",a);
for(int i=0;i<strlen(a);i++)
{
if(a[i]>=65&&a[i]<=90) a[i]=a[i]+32;
if(a[i]!='a'&&a[i]!='e'&&a[i]!='i'&&a[i]!='o'&&a[i]!='u'&&a[i]!='y')
printf(".%c",a[i]);
}
return 0;
}
然后自己还是试了一下构造一个删除函数来做这个题,通过时间竟然一样
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char a[210];
void inserts(char *t,char b,int m)
{
//cout << m << endl;
if(t==NULL||m>strlen(t)) return;
char *p=t+strlen(t)+1; //p指向结束符的下一个位置
while((p-t)>m)
{
*p=*(p-1);
p--;
}
*p=b;
}
int main()
{
scanf("%s",a);
for(int i=0;i<strlen(a);i++)
{
//int *f=a;
if(a[i]>=65&&a[i]<=90) a[i]=a[i]+32;
if(a[i]!='a'&&a[i]!='e'&&a[i]!='i'&&a[i]!='o'&&a[i]!='u'&&a[i]!='y') {
inserts(a,'.',i);
i++;
}
else
{
for(int j=i;a[j]!='