操作字符串
时间: 1ms 内存:128M
描述:
现在有一些字符串,它们需要按照以下的规则发生变化:
1、如果字符串首字母是元音字母(提示,元音字母是a、e、i、o和u),将首字母移动到字符串末尾,然后在字符串末尾加上abc;
2、如果字符串首字母是辅音字母,直接在字符串末尾加上abc;
3、最后将字符串首字母改成大写字母。
输入:
一个仅包含小写字母的字符串S,长度范围是[0,100]。
输出:
将输入的字符串,按照上述规则变化后生成的字符串
示例输入:
abandon
示例输出:
Bandonaabc
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
char str[100];
gets(str);
int n;
n=strlen(str);
int i;
char a=str[0];
if(str[0]=='a'||str[0]=='e'||str[0]=='i'||str[0]=='o'||str[0]=='u')
{
for(i=0;i<n;i++)
{
str[i]=str[i+1];
}
str[n-1]=a;
str[n]='a';
str[n+1]='b';
str[n+2]='c';
}
else
{
str[n]='a';
str[n+1]='b';
str[n+2]='c';
}
str[0]=str[0]-32;
for(i=0;i<=n+2;i++)
{
printf("%c",str[i]);
}
return 0;
}
参考答案(时间最优[0]):
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s,ans="";
cin>>s;
int n=s.length();
if(s[0]=='a'||s[0]=='e'||s[0]=='i'||s[0]=='o'||s[0]=='u')
{
for(int i=1; i<n; ++i)
ans+=s[i];
ans+=s[0];
ans+="abc";
}
else
ans=s+"abc";
ans[0]=char(int(ans[0])-'a'+'A');
cout<<ans<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。