我读过Bjarne Stroustrup编写的“C++编程语言”一书,他的一个练习是做一个简单的加密。我输入东西,用std :: cin读取并加密它并将加密的文本打印到屏幕上。这是我做的:C++简单加密
在我INT主要():
std::string read;
std::cin >> read;
encript(read);
我的功能(只是一部分):
void encript(const std::string& r){
std::string new_r;
for(int i = 0; i <= r.length(); i++)
{
switch(r[i])
{
case 'a':
new_r += "a_";
break;
case 'b':
new_r += "b_";
break;
case 'c':
new_r += "c_";
break;
case 'd':
new_r += "d_";
break;
... //goes on this way
}
}
std::cout << new_r << std::endl;
我现在的问题我真的有写每一个字符?我的意思是这些只是非大写字母。还有特殊字符,数字等。
有没有其他的方法呢?
如果C++ 11正常,'new_r + = {r [i],'_'};'。这需要一个由字符和下划线组成的初始化程序列表(想想数组初始化),并将其添加到字符串的末尾。 – chris 2013-04-06 20:46:51
你可以得到a的个数并计算其他人 – Bakudan 2013-04-06 20:48:03
@Bakudan,除非它们不保证是连续的。 – chris 2013-04-06 20:48:28