【发布时间】:2014-03-28 13:22:40
【问题描述】:
大家好,我希望有人可以帮助我,我正在尝试修复我的字符串输出,我得到了一个输出,但它全部混搭成一个长字符串,没有空格等,所以我正在尝试使用旧字符串以前有逗号空格等,并将它们替换为新的。我真的不知道该怎么做我已经在 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];
}
}
【问题讨论】:
-
很可能您正在使用
[]下标操作之一超出范围。使用调试器找出发生这种情况的确切位置和原因。 -
我已经这样做了,但是当它到达文本中的第一个空格时它会收到错误,并且它假设从旧字符串中添加一个空格然后它崩溃了我也忘记了这个“int originalSize = input2.size ();"
-
原始字符串 = "u aaul mvabe mrv po zso, jnp kg co urfrsrvwn,"; tempString = "WILLARISEANDGONOWANDGOTOINNISFREEANDAS";我试图从原来的空间中取出空间并将它们插入到新的改变的空间中
-
请不要在 cmets 中为您的问题提供额外信息(尤其不是代码),而是编辑您的问题!
标签: c++ string loops text alter