c++ - 如何在字符串中间插入字符?C++
问题描述
此代码的目的是x
在重复字母之间插入一个。例如,如果我要输入"CoolBoolFallmoose"
,则输出将是"CoxolBoxolFalxlmoxose"
。
该代码还应该生成偶数对字母,因此如果有奇数个字符,则将 anx
添加到字符串的末尾。一个例子是,如果我们有"ball"
,它会变成"balxlx"
偶数对:"ba"
"lx"
"lx"
。
这是我到目前为止的代码:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main(){
string cipher, plain, paired = "";
cout << "input plaintext(no spaces, lowercase):\n";
cin >> plain;
for (int i=0;i<plain.length();i++){
if (plain[i]==plain[i+1]){
plain.insert(i,'x');
}
paired[i]=paired[i];
cout<<paired[i];
}
if (paired.length() % 2!= 0){
paired=+'x';
}
cout<<paired<<endl;
return 0;
}
我得到的输出和我的输入一样,没有"x"
在任何地方添加。
我遇到的问题是,每次我尝试对字符串使用append()
orinsert()
函数时,我的编译器都会出现错误,即 xCode。还有其他方法可以解决此代码吗?
编辑:错误说:
没有匹配的成员函数来调用插入
它也出现在append()
.
解决方案
我真的不知道你想对这部分做什么:
paired[i]=paired[i];
cout<<paired[i];
但除此之外逻辑是好的。这是我的看法,x
是一个计数器:
#include <iostream>
#include <string>
using namespace std;
int main(){
string m,n;
int x = 0;
cout << "Input: " << endl;
getline(cin, m);
for(int i = 0;i < m.length();i++){
x++;
n = n + m[i];
if(m[i] == m[i+1]){
n = n + 'x';
x++;
}
}
if((x % 2) != 0){
n = n + 'x';
}
cout << n;
return 0;
}
推荐阅读
- postgresql - 需要 Debezium 连接器中用于 postgres 插入事件的主键信息
- python-3.x - 需要帮助将公式转换为 TensorFlow 风格的自定义指标
- firebase - Firebase:我想在管理员检查后更新存储中文件的元数据
- c# - 如何将文件添加到列表中。但列表总是被重置
- css - 如何在material-ui的禁用选项卡内启用组件行为?
- apache-spark - java.lang.IllegalAccessError:试图访问方法 org.apache.hadoop.metrics2.lib.MutableCounterLong
- python - 没有名为 ConfigParser 的模块
- javascript - 如何在 django 中激活显示更多按钮并每页显示 3 个项目
- variables - 暂存云变量
- amazon-web-services - Amazon Textract 未读取单击复选框字段