【问题标题】:parsing using scanf in C在 C 中使用 scanf 进行解析
【发布时间】:2016-05-11 12:36:22
【问题描述】:

我是第一次学习 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 个字符,但我知道这是不正确的

【问题讨论】:

  • 要读取字符串,请使用sscanfscanf 读取自 stdin

标签: c parsing pointers input scanf


【解决方案1】:

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

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

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

你还应该检查sscanf的返回值,看看是否成功。

【讨论】:

    【解决方案2】:

    您应该使用sscanf()。这里描述了它的使用:

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

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多