gpt4 book ai didi

C++,文本到 ASCII while 循环错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:49 25 4
gpt4 key购买 nike

我没有寻求帮助就走到了这一步,但我遇到了一个我似乎无法解决的问题。我喜欢密码学,所以现在我正在学习C++,我想制作程序来加密和解密字符串。我读到最好的方法是将文本转换为 ASCII,然后从那里开始,所以这是我用 C++ 编写的一个简单程序,用于尝试将 char 变量转换为 ASCII:

#include <iostream>
#include <string>
#include <math.h>
using namespace std;

int main()
{
char strString[1000];
cout<<"Enter you message:"<<endl;
cin>>strString[1000];
string strEncrypt;
int a = 0;

while (strString != '\0')
{
int b = (int)strString[a];
strEncrypt.at(a) = b; //This is where I'm getting an error.
a++;
}

cout<<"Encrypted message:"<<endl;
cout<<strEncrypt<<endl;
}

所以,我已经尝试了我知道的所有 3 件事来解决问题(谷歌,检查丢失的分号,并确保我正在做 == 而不是 =,但这只是我不知道如何做的事情做,而不是我忘记的事情(我希望)。所以,任何帮助都会很棒!

最佳答案

您不必将字符更改为它们已经存在的 ASCII。字符在内存中与整数基本相同。

现在回答你的问题; .如果你想在字符串中设置一个字符,你可以这样做

string[index] = b;

在您的代码中要注意的另一件事。您正在使用 cin 从用户那里读取字符串。这不会让您阅读其中有空格的消息,并且只会阅读第一个单词。例如,如果用户输入“Love Crypto”,cin 将只读取“Love”,而“Crypto”将被忽略。要获取整行,请改用 getline

至于遍历字符串中的字符,最好按如下方式进行:

for(int i = 0; i < strString.length(); i++)
{
strString[i] = bla;
}

同样,您的代码实际上并没有做任何事情。它只是读取一个字母,然后将 “字母” 存储在另一个字符串中。

关于C++,文本到 ASCII while 循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7005645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com