如何在C/C++中对字符串应用掩码
How to apply mask to string in C/C++?
我有一个家庭作业,但我不知道该做什么。
输入文件是从字母"a"到"z"随机生成的。用户将只使用0/1键入掩码,例如011011,其中1表示元音,0表示辅音。
输出将是在输入中找到的与用户给定掩码匹配的所有匹配项(例如,011011的输出将是abbezz)。
知道怎么做吗?我不要求代码,但只要求最简单的方法如何在c/c++中实现这一点。
感谢
我的理解是,要求是找到与掩码匹配的所有字母序列。给定掩码:010(辅音、元音、辅音)
以下是几个单词的匹配项:
"are" - fail, first character is a vowel.
"mat" - pass, 'm' is a consonant, 'a' is a vowel, 't' is a consonant.
"mate" - fail, too many letters.
你需要有一些功能来测试一个字母的元音或辅音。
还可以考虑使用状态机。如果测试失败,您希望返回到启动状态。
先写下你的算法,一步一步。提出一些测试用例来验证您的算法。算法工作后,对其进行编码。使用相同的测试用例来验证程序。
根据现有规则将字符串映射到0/1,并在新字符串中搜索与掩码匹配的子字符串。
我仍然不知道你想要完成什么,但也许知道一旦你在std::字符串中输入了你的输入,你就可以使用迭代器和任何算法迭代字符,这会有所帮助。以下是std::for_each
:的示例
#include <algorithm>
#include <iostream>
#include <string>
void applyMask(std::string::reference aCharacter)
{
// apply your mask here, character by character
if ('a' == aCharacter) {
aCharacter = 'A';
}
}
int main()
{
std::string s("stackoverflow");
std::for_each(s.begin(), s.end(), &applyMask);
std::cout << s << std::endl;
}
您可能需要查看std::transform
,例如。http://www.cplusplus.com/reference/algorithm/transform/
相关文章:
- win 表单应用程序字符串^ 到 int
- 如何保护非托管应用程序中的字符串不受进程转储的影响
- 如何对字符串变量应用验证,使其仅接受来自用户的字母数据?
- 比较两个字符串数组,我的控制台应用程序"stops responding"
- 使用 JNI 从 Android 应用程序向C++发送字符串
- STD :: cin和Scanf()应用于字符串之间的区别
- 如何正确地将规则 5(或零?)应用于包含带有字符串的自定义对象向量的类
- "map"容器C++是否对字符串的连续子字符串应用 Rabin-Karp 算法?
- 如何在Qt小部件应用程序中翻译外部文件中的字符串?
- 仅在我退出应用程序后,使用Cout.write()函数在控制台上打印字符串
- 如何在 c++ 中将函数列表应用于字符串
- 如何在C++中应用计数字符串变量出现次数的概念
- 如何将可编辑的预定义字符串写入 C++ 控制台应用程序中的 cin 输入运算符
- Qt:避免在字符串更改的情况下重建应用程序
- 关于多线程应用程序中的 STL 字符串异常
- 如何在C/C++中对字符串应用掩码
- 使用C++从Windows应用程序向dll方法传递字符串
- 如何在跨平台(Windows、iOS、Android)C++应用程序中表示字符串
- C++ 通过命令行应用将要列出的字符串添加到 txt 文件
- 需要帮助为std字符串应用MinGW补丁,得到意想不到的结果