【发布时间】:2021-05-08 16:42:13
【问题描述】:
我在 Rust 中这样实现 strtol:
fn strtol(chars: &mut Chars<'_>) -> i64 {
let mut result: i64 = 0;
loop {
match chars.next() {
Some(c) => {
match c.to_digit(10) {
Some(i) => result = result * 10 + i64::from(i),
None => break,
}
},
None => break,
}
}
result
}
问题是在运行strtol之后,迭代器指向数字后的第二个字符,它应该指向数字后的第一个字符。
例如输入“1234abc”,调用strtol后,迭代器指向b,应该是a。
【问题讨论】: