编辑: 代码应该没问题......上游代码是否有问题。
谢谢你们所有人!
最初的问题:
我从
找到了一个代码示例Replace part of a string with another string
我做了一些改动(编辑):
jQuery(function(){
window.onbeforeunload = function() {
console.log(clicked);
};
var clicked = null;
jQuery('button').on("click", function () {
clicked = this.id;
});
});
一开始就正常工作。但是当我生成一个包含135个字符的字符串时,结果只返回前79个字符。
例如,这是我的wstring:
bool replace(std::wstring& str, const std::wstring& from, const std::wstring& to) {
size_t start_pos = str.find(from);
if (start_pos == std::wstring::npos)
return false;
str.replace(start_pos, from.length(), to);
return true;
}
// Source wstring
// (This is an example, actual wstring is return by a code library)
wstring inputString = L"The apple is a deciduous tree, \\ngenerally standing 1.8 to 4.6 m (6 to 15 ft) tall in cultivation \\nand up to 12 m (39 ft) in the wild."
// Place some conditions
wstring textToReplace = L"\\n";
wstring newWstring = L"\n";
replace(inputString, textToReplace, newWstring);
我要更换" \\ n"通过" \ n"在源代码中。所以我可以只打印一行(wcout)。
这就是我得到的:
The apple is a deciduous tree, \\ngenerally standing 1.8 to 4.6 m (6 to 15 ft) tall in cultivation \\nand up to 12 m (39 ft) in the wild.
我想要的是:
The apple is a deciduous tree, \ngenerally standing 1.8 to 4.6 m (6 to 15 ft)
编辑: 我知道我应该放一个while循环而我之前做过但不能保存。
如果wstring长度小于80,那就完全可以了。
" \\ n"实际上被" \ n"取代,并且没有问题cout<<。
但是我不明白最后57个字符是怎么回事。
他们已经离开...如何用另一个wstring替换部分wstring,
但源wstring是"更长"超过80个字符?
答案 0 :(得分:0)
通过检查inputString.size()
,
代码库返回的wstring始终为79长度。
这是一个上游代码库问题... 谢谢你们所有人!