我讀過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