在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