由于recvfrom(),我收到了一个缓冲区。可以说,
字符缓冲区[12] = "你好 1";
我想将 Hello 和 1 分开并将它们存储在不同的缓冲区中,以便一个缓冲区中有“Hello”,而另一个缓冲区或 int 变量中存储有“1”。
换句话说,我想根据空格分隔缓冲区的内容。如何才能做到这一点?
我试过了:
int number;
char buff[7];
sscanf (buffer,"%s %d",buff,number);
这种方法会奏效吗?
如果只有两个词,你的想法就会奏效。但是您的代码中有一个小错误。以这种方式更改 sscanf
sscanf (buffer,"%s %d",buff,&number);
这种方法有效,但您需要更改以更改sscanf
为:
sscanf (buffer,"%s %d",buff,&number);
%d 需要一个int*
,而您正在发送一个int
.
看起来你想要strtok,它可以做到这一点。但是请确保您的字符串是 NULL 终止的,recv
并且其他套接字函数不会为您执行此操作,并且标准 C 字符串函数确实需要 NULL 终止。