繁体   English   中英

显示RAND字符的ASCII值

[英]Displaying ASCII Value for RAND Char

我正在使用最后提供的代码在数组中显示随机字符和唯一字符。

  • 我正在生成26个随机字母,ASCII值从65到90,并存储在数组中。
  • 然后,我将生成随机字母并与数组中已经存在的每个元素进行交叉检查以检查唯一性。

我知道这是非常低效的,但是就我而言,这不是问题。

我的问题是: 如何显示每个随机字符的ASCII值? 我习惯于通过以下方式显示ASCII值:

printf("ASCII value of %c = %d\\n", c, c);

但是,由于我的字母存储在array[y]所以我无法成功存储。

我的代码是:

{
    int array[26];
    int x, y;
    int count;
    int i = 0;
    char c;
    srand(time(NULL));

    for (count = 0; count < 26; count++)
    {
        array[count] = rand() % 26 + 65;
    }

    while (i < 26) {
        c = rand() % 26 + 65;

        for (x = 0; x < i; x++)
        {
            if (array[x] == c) {
                break;
            }
        }
        if (x == i) {
            array[i++] = c;
        }
    }
    for (y = 0; y < 26; y++) {
        printf(" %c = %d\n", array[y], c);
    }

    scanf_s("%d");
    return 0;  
}
  1. 输出链接
  2. 随机性/唯一性工作
  3. 仅要生成的最后一个字母的ASCII值

只需使用array[y]

printf(" %c = %d\n", array[y], array[y]);

两件事情:

首先,要解决您的问题,请编写printf(" %c = %d\\n", array[y], array[y])而不是printf(" %c = %d\\n", array[y], c)

其次,如果要存储字母,我建议也将array的成员声明为字符,即使用char array[26]而不是int array[26] 顺便说一句:如果您将其声明为char array[27]并在某处设置了array[26] = '\\0' ,则可以直接打印出array ,例如,使用printf("my letters: %s",array)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM