原题链接:[编程入门]自定义函数之字符提取
解题思路:
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 }
0.0分
10 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复