解题思路:

stl里面的string类提供了查找函数find 我们只需要建立一个元音字母表,然后在表内查询就可以了。

参考代码:

#include <bits/stdc++.h>

#define ll long long
using namespace std;

int main()
{
	string s="aeiou";
	string k;
	cin>>k;
	for(int i=0;i<k.size();i++){
		if(s.find(k[i])!=s.npos)cout<<k[i];//find函数如果找不到会返回一个s.npos
	}
    
    return 0;
 }

find函数的具体用法为:

void test()
{
    string s("dog bird chicken bird cat");

    //字符串查找-----找到后返回首字母在字符串中的下标

    // 1. 查找一个字符串
    cout << s.find("chicken") << endl;        // 结果是:9

    // 2. 从下标为6开始找字符'i',返回找到的第一个i的下标
    cout << s.find('i',6) << endl;            // 结果是:11

    // 3. 从字符串的末尾开始查找字符串,返回的还是首字母在字符串中的下标
    cout << s.rfind("chicken") << endl;       // 结果是:9

    // 4. 从字符串的末尾开始查找字符
    cout << s.rfind('i') << endl;             // 结果是:18-------因为是从末尾开始查找,所以返回第一次找到的字符

    // 5. 在该字符串中查找第一个属于字符串s的字符
    cout << s.find_first_of("13br98") << endl;  // 结果是:4---b

    // 6. 在该字符串中查找第一个不属于字符串s的字符------先匹配dog,然后bird匹配不到,所以打印4
    cout << s.find_first_not_of("hello dog 2006") << endl; // 结果是:4
    cout << s.find_first_not_of("dog bird 2006") << endl;  // 结果是:9

    // 7. 在该字符串最后中查找第一个属于字符串s的符
    cout << s.find_last_of("13r98") << endl;               // 结果是:19

    // 8. 在该字符串最后中查找第一个不属于字符串s的字符------先匹配t--a---c,然后空格匹配不到,所以打印21
    cout << s.find_last_not_of("teac") << endl;            // 结果是:21

}

image.png

点赞(0)
 

0.0分

10 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

刘陈晨 1年前 回复TA
@外物 您这个不是只能输出一个元音吗?
不负年少 1年前 回复TA
改进了一下了楼上的
void tiqu(char a[100])
{
     int i;
     for(i=0;i<strlen(a);i++)
    {
        if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
        printf("%c",a[i]);
    }
}

#include<stdio.h>
int main()
{
    char a[100];
    int i;
    gets(a);
    tiqu(a);


	return 0;
}
指针原来是套娃的 2年前 回复TA
@外物 @dotcpp0608939 嗯嗯,这样也很完美,我这里主要想介绍一下string.find的用法,c++里有一些工具使用起来很方便
外物 2年前 回复TA
@外物 这样也可以哦
外物 2年前 回复TA
#include<stdio.h>
int main()  
{
    char a[100];
    int i;
    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')
        printf("%c",a[i]);
    }
	return 0;
}