我有一个函数,返回一个介于1到255之间的整数。有没有一种方法可以将此int转换为一个字符,可以将strcmp()转换为现有字符串。

基本上,我需要从PRNG中创建一个字母字符串(所有ASCII值)。我已将所有工作减去int转换为char部分。没有像PHP中的Chr()函数。

最佳答案

C语言中的char只能接受从CHAR_MINCHAR_MAX的值。如果对char进行了签名,则CHAR_MAX可能小于255(例如,公用值为127)。如果char是未签名的,则CHAR_MAX必须至少为255。

假设您的char是未签名的,则只需将随机数分配给char(例如,在您的字符串中)。如果char已签名,则必须更加小心。在这种情况下,您可能想将值mod 128分配给char

实际上,由于您正在处理ASCII,因此您可能仍要这样做(ASCII最多为127)。

最后,强制性可移植性说明:char的整数值可能不表示其ASCII值,如果基础编码不是ASCII的话(例如EBCDIC)。

关于c - 在C中将随机整数1-255转换为字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2331205/

10-16 15:41