在c中逐字逐句地读取缓冲区

时间:2013-06-06 10:07:09

标签: c windows string char scanf

我有一个因recvfrom()而收到的Buffer。让我们说,

  

char buffer [12] =“Hello 1”;

我想将Hello和1分开并将它们存储在不同的缓冲区中,以便一个缓冲区中包含“Hello”,其他缓冲区或int变量中存储“1”。

换句话说,我想基于空格分隔缓冲区的内容。怎么办呢?

我试过了:

int number;
char buff[7];
sscanf (buffer,"%s %d",buff,number);

这种方法有用吗?

3 个答案:

答案 0 :(得分:3)

如果只有2个单词,您的想法将起作用。但是代码中存在一个小错误。 以这种方式改变sscanf

sscanf (buffer,"%s %d",buff,&number);

答案 1 :(得分:2)

此方法有效,但您需要更改以将sscanf更改为:

sscanf (buffer,"%s %d",buff,&number);

%d需要int*,而您发送的是int

答案 2 :(得分:0)

看起来你想要strtok,它可以做到这一点。但请确保您的字符串以NULL结尾,recv并且其他套接字函数不会为您执行此操作,并且标准C字符串函数确实需要NULL终止。