sscanf - 扫描字符串的某些部分;

时间:2018-03-16 17:27:40

标签: c string-formatting

我有一个格式化的字符串,并且只想提取它的某些部分。例如:

char * str = 618/3171 259/1429 557/2842;

通过sscanf我想要三个变量(整数)来保存以下变量:

i = 618
j = 259
k = 557

我似乎无法正确格式化。这是我尝试过的:

sscanf(str, "%d %d %d", &i, &j, &k);

返回:

i = 618
j = 0
k = 0

提前感谢您的帮助

1 个答案:

答案 0 :(得分:2)

试试这段代码。

int main()
{
    const char *str = "618/3171 259/1429 557/2842";

    int i, j, k;
    sscanf(str, "%d/%*d %d/%*d %d/%*d", &i, &j, &k);

    printf("%d %d %d", i, j, k);
    return 0;
}

星号(*)跳过值。 所以不需要参数。