将字符数组的内容转换为ASCII键值



我正在编写一个Caesar密码程序,我将用户输入的字符串作为字符串,然后将该字符串转换为字符数组。我一直在将该数组中的所有字符转换为ASCII键值,因为每次程序运行时,数组中的字符数量都会发生变化,这取决于用户输入的消息。我如何检查数组中的字符数,然后使用返回的数字将所有数字转换为ASCII键值

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
string Message;
char arr[Message.length() + 1];
cout << "Please Enter The Text You Would Like To Encrypt(seperate words using _ and only write in lower case)" << endl;
cin >> Message;
strcpy(arr, Message.c_str());
int Length = string(arr).length();

}

我设法解决了这个问题,方法是获取字符串的长度并将其存储到一个声明为整数的变量中以存储字符串长度。我使用Message.length()来获取字符串长度,然后创建一个for循环来迭代字符串的长度,然后声明

int ASCII_Converter = int(Message[i]) + offset

这取i的值,并在强者的相关位置使用该值,并添加偏移

if语句用于检查ASCII值是否等于95,以便在文本中添加空格

然后打印出加密字符串

#include <iostream>
#include <string>
using namespace std;
int main()
{
int Offset;
string Message;
cout << "Please Enter The Key 1-25" << endl;
cin >> Offset;
cout << "Please Enter The Text You Would Like To Encrypt(seperate words using _)" << endl;
cin >> Message;
int StringLength = Message.length();
for (int i = 0; i < StringLength; ++i)
{
int ASCII_Converter = int(Message[i]) + Offset;
if(int(Message[i]) == 95)
{
cout << " ";
}
cout << char(ASCII_Converter) << "";
}
cout << "" << endl;
}

最新更新