c++ - 检查一个字符串是否有多个彼此相邻的逗号C++

标签 c++ string loops

我有大约 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;
}

解决方案最好是快速的,因为我需要转换大约 3m 行。

总而言之,脚本运行后字符串应该如下所示:

INSERT INTO my_table(v1, v2, v3, v4, v5, v6, v7) VALUES(1, 'STRING', 'STRING', null, null, 'STRING', 'STRING');

最佳答案

string newString = Regex.Replace(inString, ",(?=,)", ", null");

关于c++ - 检查一个字符串是否有多个彼此相邻的逗号C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50537585/

相关文章:

python - 概念化分解枚举的列表理解

javascript - 如何将两个数组组合为笛卡尔积?

c++ - c++ - 如何限制char数组仅从c++中的字符串中获取a和b?

javascript - 如何使 setTimeout 函数连续循环?

c - 从文件打印并存储在数组中。

c# - 在托管 C++ 中使用函数指针调用 C# 委托(delegate)

c++ - 使用 Qt5 编译 Qt3D 失败

c++ - boost::lexical_cast 线程安全吗?

c++ - 如何刷新 GLUT 空闲函数内的窗口

java - 将 Java 字符串从全部大写(单词之间用下划线分隔)转换为 CamelCase(无单词分隔符)的最简单方法是什么?