将int转换为char(ASCII值)

时间:2016-12-20 13:48:52

标签: c++ ascii

我正在尝试使用ASCII值将int转换为charint是在97122之间(从az)随机生成的。

如何生成介于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;
    }
}

虽然随机数是在循环中生成的,但它总是给我相同的字符。

1 个答案:

答案 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;
}