如何将字符串中的值分隔为数组
How to separate values in string into Array(s)
我想把一个具有不同数据类型的字符串放入单独的数组中,假设我有以下字符串(在每行中,每个"字段"都用空格"分隔(:
string s = "1 2 3 Hello_world
3 4 1 Hi_world
1 5 3 Bye_world"
我想把这个字符串放入4个单独的数组中,每个数组都是每列中的值,所以当显示时会显示这样的内容:
s[0] = 1, 3, 1
s[1] = 2, 4, 5
s[2] = 3, 1, 3
s[3] = Hello_world, Hi_world, Bye_world
如何初始化和实现这些数组?其他语言有一个叫做split的函数(C#、PHP等(,那么C++呢?
此外,我只能使用数组,而不能使用向量。请别人给我建议。非常感谢。
既然你有一个字符串,让我们把它变成一个流:
std::istringstream input_stream(s);
模式似乎是字符串的每一行都将是目标数组的下一个元素。
int a[3];
int b[3];
int c[3];
std::string d[3];
int i;
int index = 0;
input_stream >> i;
a[index] = i;
input_stream >> i;
b[index] = i;
input_stream >> i;
c[index] = i;
std::string t;
input_stream >> t;
d[index] = t;
上面的片段用于一次迭代。
OP的任务是将片段转换为循环,以处理字符串的每一行。
您需要的是一个Tokenizer例程,它可以使用特定的分隔符将字符串拆分为子字符串(一种情况下为"\n",另一种情况为"(。然后,您可以将生成的子字符串保存到一个或多个向量中(std::vectorvectorOfStrings;(
看看这里的答案:
如何在C++中标记字符串?
相关文章:
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在 C++ 中将文件中的逗号分隔数字读取到数组中?
- C++逗号分隔的输入数组代码过早退出
- 通过分隔符分隔包含 UTF-16 BE 文本的uint8_t数组
- 如何将逗号分隔的文件读取为 2D int 数组?
- 在Arduino中将字符串转换为(逗号分隔的十六进制)字符串到无符号字符数组
- 从文件中读取后,将分号分隔的整数存储到数组中
- 使用 C++ 分隔数组中的 ODD 和偶数
- 获取由空格分隔的未知大小的单行输入,并将其存储到整数数组中
- 将字节数组转换为逗号分隔的整数字符串
- 将制表符分隔的值从文本文件读取到数组中
- C 程序要读取包含两个双重值的Excel数据的单列,这些值由逗号分隔并存储在自己的数组中
- Arduino 字符串以逗号分隔到数组
- 在 cpp 中使用 getline 输入数组中的空格分隔数字
- 如何将逗号分隔的文本文件读入数组
- 在C++中分隔字符串并存储到数组中的最佳方法
- 如何将逗号分隔的值传递到多维数组中
- 从用分号分隔的文件中读取并存储到数组中
- 将空格分隔的输入读取到C++中的数组中
- 由 8 个或更多位置分隔的数组中两个元素的最大乘积