【问题标题】:I want to create a random number, store the digits of the random number into an array, then store the array into a string我想创建一个随机数,将随机数的数字存储到一个数组中,然后将数组存储到一个字符串中
【发布时间】:2021-08-23 07:42:34
【问题描述】:

我想创建一个随机数,将随机数的数字存储到一个数组中,然后将该数组存储到一个字符串中。我试图向用户隐藏数字。这就是我所拥有的,它只存储两个数字。我该如何解决这个问题或以不同的方式进行操作以使其正常工作?

int random, n, digit;
            

srand(time(NULL));

        random = (rand() % 9999)+1000;

        n= random;

        char a[11];
        int i = 0;
        while (n > 0) {
        long int digit = n % 10;
        a[i] = digit;
        ++i;
        n /= 10;
        }
        a[i] = '\0';

        

        cout << digit << endl;

        string hiddenNumber(to_string(digit).length(),'-');

【问题讨论】:

    标签: c++ arrays string random


    【解决方案1】:

    抱歉只是建议,因为我没有看到其他人。一个可以防止领域被窥探,作为开源,认证并且几乎和我一样长。我不知道这项技术,但如果这符合您的部分需求,那么代码肯定可以从中学习......假设您想要一个高安全性的实现。当然,其他程序也这样做,一个已经存在很长时间了,所以首先想到的是。 不确定该字段的安全性如何从原始窗口转换到它被移植到的所有其他内容,因此请留意那里。 希望这是你正在寻找的一部分。干杯。官方是: https://keepass.info/ 还有其他下载网站,但为了安全起见,我会坚持使用官方网站。

    【讨论】:

    • 如果我误解了,我很抱歉,但是您的回复与问题有什么关系?
    【解决方案2】:

    上述方法的逻辑错误是数字将在数组中以相反的顺序存储。如果你的最终结果只是得到一个随机数的字符串形式,试试这个:

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        srand(time(NULL));
        int n =  (rand() % 9999)+1000;
        char str[256];
        sprintf(str, "%d", n);
        printf("%s",str);
        return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      相关资源
      最近更新 更多