我试图按照格式分隔字符串 STRING1-> STRING2其中" - >"是分隔符,STRING1可以存储到数组中的单元格中,STRING2可以存储到下一个连续的单元格中。什么是最好的编码方式?谢谢!
答案 0 :(得分:0)
最简单的方法可能是使用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];