随机字符串生成器不编辑我的字符串数组 (C++)
Random string generator doesn't edit my string array (C++)
我的字符串随机化函数输出空字符串。
我已经看到手动输入它非常有效,我尝试使用指针,但它只给我错误输出。
void random(string Arr[], int ArrSize){
for(int i = 0; i < ArrSize; i++){
int StrSize = rand() % 8 + 3;
for(int j = 0; j < StrSize; j++){
(Arr[i])[j] = rand() % 74 + 48;
}
}
}
int main(){
int ArrSize;
cout << "Input string array length: n";
cin >> ArrSize;
string StringArr[ArrSize];
random(StringArr, ArrSize);
lexCombSort(StringArr, ArrSize);
for(int i = 0; i < ArrSize; i++) cout << StringArr[i] << " n";
return 0;
}
我希望代码输出一个字符串数组(并在另一个函数中对其进行排序(,但它不输出任何内容。
您应该将字符附加到字符串中,而不是尝试覆盖它们:
Arr[i].push_back (rand() % 74 + 48);
而不是
(Arr[i])[j] = rand() % 74 + 48;
最有效的,特别是对于较长的字符串,可能是:
void random(string Arr[], int ArrSize){
for(int i = 0; i < ArrSize; i++){
int StrSize = rand() % 8 + 3;
Arr [i].append (StrSize, 0);
for(int j = 0; j < StrSize; j++){
(Arr[i])[j] = rand() % 74 + 48;
}
}
}
因为它避免了push_back
中潜在的多重分配。
现场演示
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组