Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将int转换为char(ASCII值)_C++_Ascii - Fatal编程技术网

C++ 将int转换为char(ASCII值)

C++ 将int转换为char(ASCII值),c++,ascii,C++,Ascii,我正在尝试使用ASCII值将int转换为char。int在97和122之间随机生成(从a到z) 如何生成97和122之间的随机数并将其转换为字符 在问我的问题之前,我搜索了很多答案,但没有一个能解决问题,或者完全符合我的需要。甚至都不起作用 下面是我要做的:在for循环中,程序生成一个随机数并将其转换为int。将其转换为ASCII值,然后放入QString。当for循环完成时,我将QString发送到行\u edit 按照上面的链接,我只得到了一个m 这是我的密码: QString str; i

我正在尝试使用ASCII值将
int
转换为
char
int
97
122
之间随机生成(从
a
z

如何生成97和122之间的随机数并将其转换为字符

在问我的问题之前,我搜索了很多答案,但没有一个能解决问题,或者完全符合我的需要。甚至都不起作用

下面是我要做的:在for循环中,程序生成一个随机数并将其转换为
int
。将其转换为ASCII值,然后放入
QString
。当for循环完成时,我将
QString
发送到
行\u 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;
    }
}
QString-str;
int maxlenght=16//用户将能够设置自己的最大长度
对于(int i=0;i 0)
{
str[i]=字母;
}
}

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

之后需要将字符串转换为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;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串str=“”;
int maxlenght=16;//用户可以自己设置maxlenght

for(int i=0;irelated/dupe:我以前搜索过我的问题的答案,但没有找到这个。谢谢,我会试试。好的,它没有按我希望的方式工作。你不应该同时标记问题[C]和[C++]。它们是不同的语言。使用
'a'
'z'
,而不是神奇的数字97、122。施放
(int)有什么意义(122-97+1)
?(你为什么不直接使用这个计算的实际结果?@UnholySheep它演示了根据OP的要求生成随机数的范围[97122]。U可以用26的实际值代替它,但读者可能不明白这个数字来自何处。演员阵容仍然毫无意义(甚至不是“适当”的C++,而是使用<代码> StasyType Studio< /Cord>),范围在97到122m之间,那么为什么我得到大写字母或“?”,“^”和其他一些特殊字符?@ NeWkkmie:这是因为你忘记了括号(122-97 + 1)。