【问题标题】:Generate random elements from array having hindi characters从具有印地语字符的数组中生成随机元素
【发布时间】:2015-11-30 08:13:45
【问题描述】:

我正在尝试使用 c++ 开发一个程序,该程序从存储有印地语字符的数组中生成一个随机元素。我在启动它时对数组进行了硬编码,例如

std::string hindi_array[] = {std::to_string('ठ')};

现在要从数组中生成一个随机元素,我编写了一个函数来生成数组的随机索引(效果很好)。获得随机索引后,我将其传递给另一个使用该索引打印字符的函数。以下几行是sn-p:

   int key = generate_random();
   sprintf(str, "%s", Hindi_array[key].c_str());
   lbl->setCaption(Rand_array[key].c_str());

lbl 是这里定义的标签。我得到的输出是一个像 14722230 这样的数字。印地语字符是否在某种程度上以这种方式表示?有没有办法将其转换为我想要显示的实际字符?

我是 C++ 编程的新手,所以如果这个问题太基本或愚蠢,请原谅我。任何帮助都会很棒...谢谢!

【问题讨论】:

  • 那是我的错误对不起..我忘记更改第二个数组的名称,同时使代码更易于理解。

标签: c++ arrays random


【解决方案1】:

我有一个简单快捷的建议: 用所有字母写一个宽字符字符串。为了清楚起见,我使用了英文字母。

const std::wstring letters = L"ABCDE...";
const size_t letters_count = letters.length(); // or use a macro

// random letter
size_t r = rand() % letters_count;
wchar_t random_letter = letters[r];

【讨论】:

  • 您好,我正在尝试在 Ubuntu 15.04 中使用 LOGI 打印 random_letter 的值。 #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, LOG_TAG, VA_ARGS)) 但是我的应用程序停在那里。它根本不打印。有没有办法使用LOGI打印它。在这种情况下我不能使用 wcout。
猜你喜欢
  • 2016-04-27
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
相关资源
最近更新 更多