我有大约300万个字符串,看起来像这样:
INSERT INTO my_table(v1, v2, v3, v4, v5, v6, v7) VALUES(1,'STRING','STRING',,,'STRING','STRING');
我需要编写一个脚本来查找彼此相邻的多个逗号的所有实例,并在它们之间插入null
。
我已经尝试在字符串中循环并检查每个字符,但我想要一个更快的解决方案。
这是我目前的(建议但很慢)的解决方案:
char last_char = line.at(0);
for(std::string::iterator i = line.begin(); i != line.end(); ++i) {
char current_char = line[i];
if(current_char == ',' && last_char == ',') {
//Insert null here
}
last_char = current_char;
}
解决方案最好应该很快,因为我需要转换大约3米的行。
总结一下,脚本运行后,字符串应如下所示:
INSERT INTO my_table(v1, v2, v3, v4, v5, v6, v7) VALUES(1, 'STRING', 'STRING', null, null, 'STRING', 'STRING');
答案 0 :(得分:2)
<!DOCTYPE html>
<html>
<title>contact</title>
<body>
<div class=“panel”>
<center>
<img src=img/about_blackonorange.png height=215 width=215>
</center>
<center>
<div class="twelve columns nav-bar--column">
<nav class="nav-collapse">
<a href=home.html>home</a>
<a href=news_v2.html>news</a>
<a href=visual_v2.html>visual</a>
<a href=audio_v2.html>audio</a>
<a href=contact_v2.html>contact</a>
<a href=about.html>about<a>
</nav>
</div>
</center>
<style>
div {
width: 430px;
center;
}
div.a {
word-wrap: normal;
}
</style>
<!—-CONTENT GOES HERE—->
<center>
<p>
<div class="a">
blah blah blah blah blah.
<br></br>
blah blah blah blah blah.
</div>
</p>
</center>
</body>
</html>
答案 1 :(得分:1)
auto pos = line.find(",,");
while (pos != std::string::npos)
{
line.replace(pos, 1, ",null");
pos = line.find(",,", pos+5);
}