从 C 语言中的逗号分隔字符串中提取数字数据
将逗号分隔字符串中的数据解析为数值数组是编程中的常见挑战。对于整数的具体情况,C 提供了几种简单的方法。
基本解析算法:
一种简单的方法涉及逐个字符地迭代字符串。对于每个字符,检查下一个字符是否是逗号。如果是,则丢弃逗号。否则,将字符转换为整数并将其存储在数组中。
使用 istringstream:
C 标准库提供了 istringstream 类用于解析输入流。要从逗号分隔的字符串中提取数字,请使用该字符串作为输入创建一个 istringstream 对象。然后,使用流提取运算符>>一次提取每个数字。
实现:
以下代码片段演示了使用 istringstream 的基本解析算法:
#include <vector> #include <string> #include <sstream> #include <iostream> int main() { std::string str = "1,2,3,4,5,6"; std::vector<int> vect; std::stringstream ss(str); for (int i; ss >> i;) { vect.push_back(i); if (ss.peek() == ',') ss.ignore(); } for (std::size_t i = 0; i < vect.size(); i++) std::cout << vect[i] << std::endl; return 0; }
其他选项:
对于更复杂的对于解析场景,C 标准库提供了额外的选项,例如 strtok 函数和正则表达式。但是,对于简单的逗号分隔整数列表,上述方法通常足够且易于实现。
以上是如何在 C 中有效地从逗号分隔的字符串中提取整数?的详细内容。更多信息请关注PHP中文网其他相关文章!