显示RAND Char的{ASCII值

时间:2017-01-22 19:13:39

标签: c ascii

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

  • 我正在生成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. Output已关联
  2. 随机性/唯一性工作
  3. 仅生成最后一个字母的ASCII值

2 个答案:

答案 0 :(得分:2)

只需使用array[y]

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

答案 1 :(得分:2)

两件事:

首先,要解决您的问题,您需要写$selected_id = -1; $selected_name = ""; if(isset($_GET['cid'])){ $cid = $_GET['cid']; $res = $pdo->prepare("SELECT * FROM k WHERE id = :cid"); $res->bindParam(":cid",$cid); $res->execute(); // Run the method $rw = $res->fetchAll([$cid]); // Store the fetchAll result in a new variable if($rw){ $selected_id = $rw['id']; $selected_name = $rw['ime']; } } 而不是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