使用rand()生成随机数没有问题 我必须使用一串char来创建一个输出文件,例如" AQSDJEIOFHDUK" 当rand()%26 +1的结果为1时,我将在文件中打印" A"当结果是" 2" B等等。我已经先知道字符串中有多少个字符,所以说50。 我用C语言做到了这一点。 我应该使用哪个功能? strcat的?
答案 0 :(得分:3)
简单设置一个数组,其中包含通过rand()
#define RANDOM_STRING_LENGTH 50
char buf[RANDOM_STRING_LENGTH + 1];
for (size_t i = 0; i < RANDOM_STRING_LENGTH; i++) {
buf[i] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[rand() %26];
}
buf[RANDOM_STRING_LENGTH] = '\0';
puts(buf);
答案 1 :(得分:1)
您可以使用ASCII字符表生成有效字符。大写字母的基数为65,因此生成时
char new_char = 65 + rnd;
你可以说像这样的话
char new_char = 'A' + rnd;
或正如其他人所说,它更容易阅读
rand() % 26
应根据'a'
的结果在ascii字符表中为您提供一个字符。请记住,在C中,unsigned char实际上只是一种数据类型,范围从数字0到数字255。
(如下所述,签名字符的范围可以从-126到127)
'b'
和UUIDField
之类的内容会被转换为等同的ascii。 (即它们代表的0到255之间的相应数字。)
(当然,除非你使用的是UNICODE。)
我希望这会有所帮助。