在C中使用scanf进行解析

use*_*075 2 c parsing pointers input scanf

我是第一次学习C语言.

我有一个指向一个名为goalie_stat的字符串的指针(见下文).我如何使用scanf来解析保存百分比,即933,然后将933分配给变量然后最终打印出来?

char *goalie_stat = "PatRoy 2.28  933  35  12  165 199  4   5500"

char save_p = scanf("%[13-15]", goalie_stat);
printf("%s", save_p);
Run Code Online (Sandbox Code Playgroud)

'933'是字符串的第13,14和15个字符,但我知道这是不正确的

Spi*_*rix 5

您应该sscanf用于解析字符串,而不是scanf:

int num;
sscanf(goalie_stat, "%*s %*s %d", &num);
printf("%d", num);
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩!%*s读取并丢弃第一个单词,goalie_stat第二个单词%*s读取并丢弃下一个单词(2.28). %d然后读取第三个数字并存储它num.

您还应该检查返回值sscanf以查看它是否成功.