Char数组为整数

时间:2013-04-10 23:43:34

标签: c integer arrays

我有2个问题。

这里是C ++参考

#include <stdio.h>

int main ()
{
  char sentence []="Rudolph is 12 years old";
  char str [20];
  int i;

  sscanf (sentence,"%s %*s %d",str,&i); <---
  printf ("%s -> %d\n",str,i);

  return 0;
}

问题1.%* s到底在做什么?

我的程序我正在构建哈希表。

它会查询用户是否输入

q- quit
i <int> - inserts integer //must be on same line
d <int> - deletes integer //must be on same line
etc....

For example:

in order to insert "35" I would have to type:

i 35

问题2. C ++引用是否适用于'q'和'i 35',因为'q'与它没有整数?

char choice[10];
char option;
int i;

sscanf(choice, "%c %d", &option, &i);

如果输入'q'(没有附加整数)以及输入“i 35”(带整数是否附加),这是否有效?

1 个答案:

答案 0 :(得分:2)

这意味着它应该从流中跳过该类型。例如,输入流是:

"Rudolph is 12 years old"

第一个%s将捕获"Rudolph"%*s将“读取但忽略”"is"(即不将其存储在变量中),然后%d 1}}将读取并捕获12

我不太清楚你的第二个问题是什么意思。我相信您在询问"%s %*s %d"格式是否适用于从输入中阅读"q"。在这种情况下,您应该为单个字符使用不同的格式,例如"%s""%c"

根据您更新的问题,您可以轻松地尝试并查看。在我的测试中,它确实适用于"q"的输入:sscanf单独留下int,但会在"q"中读取。