在C++中分隔字符串并存储到数组中的最佳方法
Best way to delimit a string and store into array in C++?
我正在尝试按照格式分隔字符串STRING1->STRING2,其中"->"是分隔符,STRING1可以存储到数组中的单元格中,STRING2可以存储到下一个连续的单元格中。编写此代码的最佳方法是什么?谢谢!
最简单的方法可能是使用 sscanf:
char input[] = "123->456";
sscanf("%d->%d", &array[0], &array[1]);
使用iostreams,它有点笨拙(但仍然完全可能):
char ign1, ign2;
istringstream input("123->456");
input >> array[0] >> ign1 >> ign2 >> array[1];
assert(ign1=='-');
assert(ign2=='>');
不过,这些在编写时略有不同 - C++版本将接受在分隔符之前,中间或之后有空格的输入,例如123 - > 456
,而C版本则不会。如果您希望 C 版本这样做,添加它(将格式字符串更改为 "%d - >%d"
)是微不足道的,但让 C++ 版本不这样做会使它更加笨拙:
input >> array[0];
input.read(ign1);
input.read(ign2);
input >> array[1];
相关文章:
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 初始化数组、"memset"或" {//value} "的最佳方法是什么?
- 创建 std::string 的二维数组的最佳做法
- 从数组中删除非唯一值、保持顺序和不使用向量的最佳方法?
- 初始化不是整数的巨大常量多维数组的最佳方法是什么?
- 这是使用构造函数初始化数组对象的最佳方法吗?
- 比较/搜索数组中多个整数的最佳解决方案
- 将空填充但不以空结尾的固定长度字符数组转换为 std::string 的最佳方法
- 填充字符数组的最佳方法(获取与cin.getline)
- 将对象数组作为参数传递的最佳方法是什么
- 在2D数组中交换行的最佳方法
- 读取四个数据文件并使用函数将它们放入结构数组的最佳方法是什么
- 使用索引数组订购 ArrayFire Array 的最佳方式
- C++保存大型数组的最佳方法
- 以C++声明数组大小的最佳方法
- C 初始化列表std ::数组最佳性能
- 我该如何判断k-server动态解决方案的最佳路径以数组成本[i] [j] [k] [t]位于何处
- C++是检查多维数组中匹配项的最佳优化方法
- 保留动态分配的数组而不为删除而烦恼的最佳方法