比较两个字符串add(空格,逗号,点等)c++
Compare two strings add(empty space, commas, dots, etc) c++
嗨,我希望有人能帮助我,我正试图修复我的字符串输出,我得到一个输出,但它全部捣碎成一个长字符串没有空格等,所以我试图使用旧字符串,以前有逗号空格等,并将它们替换为新的。我真的不知道如何去做这件事,我在c++中尝试过,如果我在我的程序中运行下面的代码,它会在我身上崩溃,我不知道如何修复它。
string input2 = "chq pste uwdn or mfwiejjne
u aaul mvabe mrv po zso, jnp kg co urfrsrvwn,
azh s bmmpd lanmf kuupv chqvw, xf opsh azh ojtfpwb mmhw;
wizi tnaz vgfs imdu i tenn ttijn, a tmnn fav lqe tsfny niw,
jnp paee mpgwe ur lqe niw uogh yuapi.
swd u wzjlx lsee esen pqeun ttijn, fav hnaoi uxmqw vaobtawg epgf,
ddshyizk xaoy xzn vqmdb or xzn mavfrns xg fhqvw chq gjrcwil bizkk;
chqvw vipraphf’w sul m kdrmyij, jnp rgxn m tmapxi yuoi,
efm ehifrns jmul aj lqe xmfwef’w ornsw.
a fixp saiei swd ss fxw, rsj jlieqb nukzc azh vjy
u lwjr xecn wmxwa lmthrns aach xso bogrvb bk xzn stsjn;
wtmdn i exswd ar lqe dssmwmc, ga oz xzn pmzwvezxk prqc,
a qemv ac iz xzn dqih qemvl’b cavw.";
string result = "THELAKEISLEOFINNISFREEIWILLARISEANDGONOWANDGOTOINNISFREEANDASMALLCAB
INBUILDTHEREOFCLAYANDWATTLESMADENINEBEANROWSWILLIHAVETHEREAHIVEFORTH
EHONEYBEEANDLIVEALONEINTHEBEELOUDGLADEANDISHALLHAVESOME
PEACETHEREFORPEACECOMESDROPPINGSLOWDROPPINGFROMTHEVEILSOFTHEMORNINGTOWHERETHE
CRICKETSINGSTHEREMIDNIGHTSALLAGLIMMERANDNOONAPURPLEGLOWANDEVENINGFULLOFTHELINNET
SWINGSIWILLARISEANDGONOWFORALWAYSNIGHTANDDAYIHEARLAKEWATERLAPPINGWITHLOWSOUNDSB
YTHESHOREWHILEISTANDONTHEROADWAYORONTHEPAVEMENTSGREYIHEARITINTHEDEEPHEARTSCORE";
string original = input2; //original unchanged text with spaces, commas etc
string tempResult = result; //the new output without spaces, commas, dots etc
string fixed = ""; //string to be altered with spaces, commas etc
int originalSize = input2.size();
int i = 0, j = 0;
for(i, j; i < originalSize ;i++)
{
if(isalnum(original[i]) || !original[i] == ' ')
{
fixed += tempResult[j];
j++;
}
else
{
fixed += tempResult[j];
}
}
正如评论中所指出的,提供一个最小的,完整的和可验证的例子会让你更容易理解你的问题,但我想我明白你想做什么。对代码进行最小的修改,一个解决方案可能是:
#include <iostream>
#include <string>
using namespace std;
string original = "xxxx, x xxxxx, xx x xxxxxx xxxxxxxx.";
string letters = "ThisIthinkisabetterquestion";
string desired = "This, I think, is a better question.";
int main()
{
string fixed;
int i, j;
int originalSize = original.size();
for(i=j=0; i < originalSize ;i++)
{
if(!isalnum(original[i]))
{
fixed += original[i];
}
else
{
fixed += letters[j++];
}
}
cout << fixed << endl;
cout << desired << endl;
return 0;
}
相关文章:
- 如何使用默认参数等选择模板专业化
- 在Linux中哪里可以找到互斥、未来等的源代码
- 试试完美的正方形,你能给点小费吗
- 无法将结构注册为增强几何体3D点
- C - 从逗号分隔的浮点线提取字符串
- C 如何用逗号(而不是点)在文件中打印一个双小数号
- Qlineedit中的点替换逗号
- GetAsyncKeyState(int vKey)中的点逗号减号加号
- C++如何将整数和浮点等数据类型封送为字节字符串
- 当浮点值有逗号而不是点时,如何读取该值
- 从给定点获取 N 个随机等距点
- 字符串到浮点的转换,同时支持小数点和小数逗号
- 如何使浮动使用逗号而不是点
- c++ %f点代替逗号
- 模拟一个逗号/点键
- Boost Signals2:如何注册鼠标点击和按键等事件
- 通过一次迭代删除字符串中的所有逗号、句点和小写字母
- 变量列表中的逗号是序列点吗
- 比较两个字符串add(空格,逗号,点等)c++
- 生成与点等距的向量