在C++中解析逗号分隔的字符串,其中一些元素用逗号引起来,可以通过以下步骤实现:
std::getline
函数和std::stringstream
来实现。将逗号分隔的字符串存储到一个std::vector<std::string>
中。#include <iostream>
#include <sstream>
#include <vector>
int main() {
std::string input = "element1,element2,'element3,with,commas',element4";
std::vector<std::string> elements;
std::stringstream ss(input);
std::string item;
while (std::getline(ss, item, ',')) {
elements.push_back(item);
}
// 输出解析后的元素
for (const auto& element : elements) {
std::cout << element << std::endl;
}
return 0;
}
#include <iostream>
#include <sstream>
#include <vector>
int main() {
std::string input = "element1,element2,'element3,with,commas',element4";
std::vector<std::string> elements;
std::stringstream ss(input);
std::string item;
while (std::getline(ss, item, ',')) {
if (item.front() == '\'' && item.back() != '\'') {
// 引号未闭合,继续读取直到闭合
std::string temp;
while (std::getline(ss, temp, ',')) {
item += ',' + temp;
if (temp.back() == '\'') {
break;
}
}
}
elements.push_back(item);
}
// 输出解析后的元素
for (const auto& element : elements) {
std::cout << element << std::endl;
}
return 0;
}
这样,就可以在C++中解析逗号分隔的字符串,同时处理了使用逗号引起来的元素。对于解析后的元素,可以根据具体需求进行进一步处理和使用。
注意:以上代码仅为示例,实际应用中可能需要根据具体情况进行适当的错误处理和边界检查。
领取专属 10元无门槛券
手把手带您无忧上云