在C中使用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); 

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

您应该使用sscanf来解析字符串,而不是scanf

 int num; sscanf(goalie_stat, "%*s %*s %d", &num); printf("%d", num); 

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

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

你应该使用sscanf() 。 其用途如下所述:

http://www.tutorialspoint.com/c_standard_library/c_function_sscanf.htm