无法查找并替换矢量的所有出现
Cant find and replace all the occurances of the vector
-
我应该能够使用矢量解码秘密信息。
-
我已经写出了所有的向量,可以找到出现的第一个实例。
-
我一次只能找到一个向量。
-
我应该能够解码像">,$]:"这样的消息(应该拼写为">tops(。
-
我没有包括整个矢量列表,因为这太长了:
... sym.at(i)="$"; letr.at(i) = "o"; ++i; sym.at(i)="]"; letr.at(i) = "p"; ++i; sym.at(i)="}"; letr.at(i) = "q"; ++i; sym.at(i)=";"; letr.at(i) = "r"; ++i; sym.at(i)=":"; letr.at(i) = "s"; ++i; sym.at(i)=","; letr.at(i) = "t"; ++i; sym.at(i)="%"; letr.at(i) = "u"; ++i; sym.at(i)="<"; letr.at(i) = "v"; ++i; sym.at(i)="."; letr.at(i) = "w"; ++i; sym.at(i)=">"; letr.at(i) = "x"; ++i; sym.at(i)="/"; letr.at(i) = "y"; ++i; sym.at(i)="?"; letr.at(i) = "z"; ++i; cout << "nEnter decrypted message: "; //asking dycypted message cin >> message; found = false; for (i = 0; i < numCar; ++i) { // find letter index if (sym.at(i) == message) { found = true; cout << "decrypted message is: "; cout << letr.at(i) << endl; } } ...
无法查找并替换矢量的所有出现:
- 显然你不能,假设
message == ",$]:"
——你的for
循环中的条件sym.at(i) == message
永远不会变成true
。因此,永远不会对if
子句中的代码进行求值
你怎么能轻松做到
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string sym("$]};:,%<.>/?");
std::string let("opqrstuvwxyz");
std::string inpt;
while (std::getline(std::cin, inpt)) {
for (std::size_t i(0), ie(inpt.size()); i < ie; ++i) {
std::size_t idx = std::distance(sym.begin(), std::find(sym.begin(), sym.end(), inpt[i]));
if (idx < sym.size()) std::cout << let[idx];
}
std::cout << std::endl;
}
return 0;
}
演示
相关文章:
- 从文件中查找单词并替换到其他文件中
- 查找并替换char*中所有出现的const char*
- 创建程序以从给定的.txt文件中查找文本,替换并计算单词
- 查找和替换子阵列的最佳方法
- C++ cstring 查找和替换
- 将 math.h exp 调用替换为查找表
- 在参数相关查找之前进行模板替换的任何方法(或解决方法?
- LPCWSTR 查找和替换为转义字符
- 如何从C++的输入中查找字符串并将其替换为另一个字符串
- 查找并替换数组的特定元素
- Visual Studio-查找并替换,但不是确切的匹配
- 如何查找查看一个字符串是否位于另一个字符串内部并替换它
- 尝试在自定义 QT 创建器文本编辑器中创建查找和替换循环.我似乎无法设置光标位置
- C++字符数组查找/替换字符
- C 查找并替换整个单词
- Visual Studio,在(解决方案资源管理器的)某个筛选器内的所有文件中查找/替换文本
- C 字符串匹配和使用查找文件替换
- 在Qt Creator中使用正则表达式在多个文件中查找和替换
- C++查找/替换字符串
- visual studio查找替换