c++ - 无法转换字符串插入函数的参数
问题描述
我的家庭作业需要帮助。我必须编写一个程序,将随机元音乘以随机数。这是我的代码。我已经包含了库:iostream
、string
和. 当我编译时,我收到以下错误: cstdlib
ctime
„std::_String_iterator<std::_String_val<std::_Simple_types<_Elem>>> std::basic_string<_Elem,std::char_traits<char>,std::allocator<char>>::insert(const std::_String_const_iterator<std::_String_val<std::_Simple_types<_Elem>>>,const unsigned int,const _Elem)”: nie można dokonać konwersji argumentu 1 z „int” do „const std::_String_const_iterator<std::_String_val<std::_Simple_types<_Elem>>>”
using namespace std;
int main() {
srand(time(0));
string x;
getline(cin, x);
for (int i = 0; i < x.size(); i++) {
if (x[i] == 'a' || x[i] == 'e' || x[i] == 'i' || x[i] == 'o' ||
x[i] == 'u' || x[i] == 'y' || x[i] == 'A' || x[i] == 'E' ||
x[i] == 'I' || x[i] == 'O' || x[i] == 'U' || x[i] == 'Y') {
int d = rand() % 5 + 1;
for (int j = 0; j < d; j++) {
x.insert(i, x[i]);
}
}
}
cout << x;
}
解决方案
有一个插入版本,它采用位置、计数和字符。您将要使用它而不是 for 循环。
int d = rand() % 5 + 1;
x.insert(i, d, x[i]);
但我认为你的主循环永远不会结束,因为它总是会匹配插入的元音。
推荐阅读
- windows - 如何在 Windows MediaTranscoder API 中将 HDR 转码为 SDR?
- telethon - 会话持续多长时间?
- parsing - 向函数添加错误处理 - Haskell
- jena - Jena 查询优化
- activemq-artemis - Artemis REST API(通过 Jolokia)用于清除所有队列上的所有消息
- caching - 具有特定规则时,Cloud-flare 缓存清除不起作用
- python - 使用 python 正则表达式通过星号搜索/替换自定义标签之间的单词
- django - django 多项选择字段不会被保存
- python - 模块 'pytest' 没有属性 'allure'
- c++ - clang 格式:大括号前中断,左大括号后空行,右大括号前空行