我有以下 sscanf :

int four;
sscanf("1234&awe$asdf@3222*gr45", format, four);

我希望这个 sscanf 将值 3222 放在变量 four 中。format 字符串应该是什么?
& $ @* 始终保持不变。因此,字符串输入的其他示例可以是:
"6345&346dfh$aweg@5463*nvm" -> 和 four 将是 5463"0hjgf&456d$fhg@05645*pogyu" -> 和 four 将是 05645
如果我不够清楚,我很抱歉。我试图尽可能清楚。

编辑:
我认为方法是这样的:
sscanf("1234&awe$asdf@3222*gr45", "@%d*", four);

还有其他方法吗?

最佳答案

@Nirock 评论已走上正轨。

int four;
// Anything not & (don't save it) followed by & then
// Anything not $ (don't save it) followed by $ then
// Anything not @ (don't save it) followed by @ then
// Anything not * (don't save it) followed by * then
// followed by an `int`
if (1 == sscanf(s, "%*[^&]&%*[^$]$%*[^@]@%*[^*]*%d", &four)) {
  ; // found it
}

关于c - c 中的 sscanf - 仅获取特定数字/字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20021906/

10-11 21:22