向字符串数组中添加随机字符
C++ Add random characters into a string array
所以我想创建1000个单词,长度为5个随机字符。在我的主要我有字[1000],但当我试图运行这段代码,它给了我一个错误说"表达式:字符串下标超出范围"。我不知道为什么会这样因为我以为字符串数组是二维的?如果有人能告诉我为什么我的代码是错误的,我会很感激。谢谢。
void createText(string w[], int seed) {
char ch;
srand(seed);
for(int i = 0; i < 1000; i++) {
for(int j = 0; j < 5; j++) {
ch = ('A' + rand() % 26);
w[i][j] = ch;
}
}
for(int i = 0; i < 1000; i++) {
cout << w[i];
}
cout << endl;
}
我假设数组w没有1000个元素,还要记住这里您将获得string w[]
的副本。最好是传递一个指针到w (string* w)
,然后你会非常清楚什么是错的。还请记住,cout将字符串写出来,直到它达到' '
字符,这也可能是原因。使用gdb的快速会话将有所帮助:
gdb program
...
run
bt full
应该指出你的问题。如果它是某种IDE,学习如何在其中调试。Valgrind或其他memcheck,如visual leak detector或luke stackwalker也会向您展示一些关于错误初始化或未提及的内存泄漏的提示。
如果数组是二维的,则不能像w[i]那样打印它的值。您必须始终记住,数组是二维的,这意味着输出必须像cout <<w[我][j];
另外,你正在传递一个字符串数组作为参数,你所做的是在每个位置添加字符,这意味着你实际上只会在字符串中插入1000个字符(因为你实际上添加了"一个字符"字符串),所以你只会放入200个单词,每个单词的长度为5个字符。直接插入字符串,你会得到你的1000个单词,但首先要找到一种用随机字符构建字符串的方法。
类似:(条件){
(条件){造一个词}
array[x][y] = string}
我猜这和你想做的差不多
相关文章:
- 为什么 Serial.println(<char[]>);返回随机字符?
- 字符串-C++后显示的随机字符
- 生成随机.txt文件,10行,10列。充满随机:"*"、"#"、"@"。然后将随机字符替换为'P'
- 在 c++ 的 10x10 数组中生成特定数量的多个随机字符
- 使用指针编译代码后,.cpp文件将变为随机字符
- 生成随机字符/数字
- 随机字符,从强制转换 Arduino 字符串到 Excel BSTR 通过 c++ DLL
- 字符数组中的十六进制导致写入套接字时出现随机字符
- 如何在网格中放置随机字符
- 解压缩 TIFF 数据会打印随机字符
- 尝试以随机字符(长读取)打印字符串返回结果
- UNIX API 调用:使用 read() 函数打开文件并将其打印到屏幕上会增加额外的随机字符
- 如何修复C++中的随机字符输出?
- 为什么从函数返回c弦乐会导致随机字符
- 生成唯一的随机字符并将其保存在数组中
- 编译器将随机字符添加到我的 char 数组中
- 字符串更改程序输出随机字符
- 挑选无重复C 的随机字符
- 随机字符作为在样本中使用 libaws 时返回
- C/C++ - 生成一个随机字符串会覆盖以前的字符串(请参阅下面的代码)