题目描述
写一函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。
输入一行字符串
输出顺序输出其中的元音字母(aeiou)
思路一
逐个读字符,当字符为元音字母时,直接输出该字符
缺点
当字符串较长时,运行时间会超过规定时间(逐个元音字母打印比整个字符串打印时间长)。而且不符合题目要求(复制到另一个字符串)
代码
#include<stdio.h>
#include<string.h>
int main()
{
char temp;
while((temp = getchar()) != '\n')
{
if(temp == 'a' || temp == 'e' || temp == 'i' || temp == 'o' || temp == 'u')
printf("%c", temp);
}
return 0;
}
思路二
直接使用gets()函数直接读入整个字符串,然后把元音字符复制到另一个字符串,再直接用puts()函数打印整个字符串。
代码
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000], b[1000];
int i, j = 0;
gets(a);
for(i = 0; i < strlen(a); i++)
{
if(a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u')
{
b[j] = a[i];
j++;
}
}
puts(b);
return 0;
}