【发布时间】:2016-02-27 15:55:07
【问题描述】:
我已尝试在此处/Google 上进行搜索,以找到一种更优化的方式来处理我需要处理的输入。这是一个例子……
[1 5 0 50 100 60] [2 4 1 0 40 50]
这些数字是随机的,但我事先知道有多少个带括号的集合。另外,我确定格式将始终相同...
用括号括起来的6个数字
我已经有了一些工作,我将输入输入到一行中,然后逐个字符地检查字符...
1) 占括号集合数量的外部 for 循环
2)先看是不是空格,'[',']'
3) 如果不是,请获取该号码并存储它
4) 然后再次开始检查空间
5) 存储下一个等
6) 直到我到达 ']' 并继续循环
但我觉得需要一种更好/更清洁的方式来处理解析。
示例代码...
char c = line[position];
while (c == '[' || c == ']' || cc == ' '){
position++;
c = line[position];
}
string firstStr;
while (c != ' '){
firstStr += c;
position++;
c = line[position];
}
first = atoi(firstStr.c_str());
while (c == ' '){
position++;
ch = line[position];
}
string secondStr;
while (c != ' '){
secondStr += c;
position++;
c = line[position];
}
second = atoi(secondStr.c_str());
【问题讨论】:
-
@seb 但是 OP 有两个问题。
-
我会使用
std::istringstream或std::sscanf() -
谢谢大家。我也想过正则表达式,但不确定如何实现。雷米,我会看看两个谢谢!