这是我需要做的事情: - 用户输入一些大写字母或单词, - 我转过这些字母(我用“obrjen”做过) - 我将这些字母转换为ASCII值, - 我将所有这些数字乘以4, - 我保存了值并输出了它。我会做同样的事,但反过来做出解密并取回字样
感谢任何帮助,谢谢!
void sifriraj(char sifra[100], char obrjen[100], int &velikost3)
{
int j=99;
for (int i=0; i<100; i++)
{
obrjen[j]=sifra[i];
j--;
for (i; i>99-velikost3 && i<100; i++)
{
if (obrjen[i]==' ')
{
cout<<"00";
}
if (obrjen[i]=='A')
{
cout<<"65";
}
else if (obrjen[i]=='B')
{
cout<<"66";
}
else if (obrjen[i]=='C')
{
cout<<"67";
}
else if (obrjen[i]=='D')
{
cout<<"68";
}
else if (obrjen[i]=='E')
{
cout<<"69";
}
else if (obrjen[i]=='F')
{
cout<<"70";
}
else if (obrjen[i]=='G')
{
cout<<"71";
}
else if (obrjen[i]=='H')
{
cout<<"72";
}
else if (obrjen[i]=='I')
{
cout<<"73";
}
else if (obrjen[i]=='J')
{
cout<<"74";
}
else if (obrjen[i]=='K')
{
cout<<"75";
}
else if (obrjen[i]=='L')
{
cout<<"76";
}
else if (obrjen[i]=='M')
{
cout<<"77";
}
else if (obrjen[i]=='N')
{
cout<<"78";
}
else if (obrjen[i]=='O')
{
cout<<"79";
}
else if (obrjen[i]=='P')
{
cout<<"80";
}
else if (obrjen[i]=='R')
{
cout<<"82";
}
else if (obrjen[i]=='S')
{
cout<<"83";
}
else if (obrjen[i]=='T')
{
cout<<"84";
}
else if (obrjen[i]=='U')
{
cout<<"85";
}
else if (obrjen[i]=='V')
{
cout<<"86";
}
else if (obrjen[i]=='Z')
{
cout<<"90";
}
}
}
cout<<endl;
}
答案 0 :(得分:0)
要从char中获取ascii代码,您只需执行此操作:
char x = 'A';
int a = x;
std::cout << x << " has ascii code " << a;
因此,正如LogicStuff评论的那样,您已经存储了这些数字,您可以将它们用于以后的计算。
答案 1 :(得分:0)
现在看来你通过编辑在你的问题中发布了一个代码。代码似乎是一些ASCII提取。您只需要提取每个字符并将其通过提取运算符流式传输到int
变量中。
以前,您似乎有一串数字,您希望一次解析两个。因此,以下代码不再适用于您的职位。
考虑以下代码:
它需要一个std::string
并将字符串两个字符一次解析为一个无符号整数,并解析为std::vector
。您可以将该行中的数字作为字符串输出并将其提供给此函数。
vector<unsigned int>get_num(string& str)
{
string::iterator it{str.begin()};
string::iterator it_end{str.end()};
vector<unsigned int> out_vector;
unsigned int val{};
while(it<it_end)
{
string part(it,it+2);
it+=2;
istringstream reader(part);
reader>>val;
out_vector.push_back(val);
}
return out_vector;
}