1

recvfrom() の結果として受信したバッファがあります。まあ言ってみれば、

char buffer[12] = "こんにちは 1";

Hello と 1 を分離し、別のバッファーに格納して、1 つのバッファーに "Hello" が含まれ、別のバッファーまたは int 変数に "1" が格納されるようにします。

つまり、スペースに基づいてバッファの内容を分離したいと考えています。これはどのように行うことができますか?

私は試した:

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

このアプローチは機能しますか?

4

3 に答える 3

2

このアプローチは機能しますが、次のように変更する必要がありますsscanf

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

%d は を期待してint*おり、あなたは を送信していintます。

于 2013-06-06T10:12:07.487 に答える
1

strtokが必要なように見えますが、まさにそれを行うことができます。ただし、文字列が NULL で終了していることを確認してください。recv他のソケット関数はそれを行わず、標準の C 文字列関数は NULL 終了を想定しています。

于 2013-06-06T10:11:37.750 に答える