我正在尝试使用ASCII值将int
转换为char
。 int
是在97
和122
之间(从a
到z
)随机生成的。
如何生成介于97和122之间的随机数并将其转换为char?
我在问我的问题之前搜索了很多答案,但没有一个解决了问题,或者与我的需求完全相关。即使this也无效。
以下是我要做的事情:在for循环中,程序生成一个随机数并将其转换为int
。将其转换为ASCII值,然后放入QString
。 for循环完成后,我将QString
发送到line_edit
。
通过以上链接,我只得到m
。
这是我的代码:
QString str;
int maxlenght = 16; //the user will be able to set himself the maxlenght
for (int i =0; i<maxlenght; i++)
{
int random = 97 + (rand() % (int)122-97+1);
char letter = (char)random;
if(i > 0)
{
str[i] = letter;
}
}
虽然随机数是在循环中生成的,但它总是给我相同的字符。
答案 0 :(得分:-1)
之后你需要将字符串转换为QString。
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
string str="";
int maxlenght = 16; //the user will be able to set himself the maxlenght
for (int i =0; i<maxlenght; i++)
{
int rand_num = 97 + (rand() % (122 - 97 + 1));
char letter = static_cast<char>(rand_num);
str += letter;
}
cout << str << endl;
return 0;
}