C++ 将int转换为char(ASCII值)
我正在尝试使用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
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)。