1

STDIN から HTML フォームの内容を読み取り、現時点で文字列をトークン化する C コードがいくつかあります。

fgets(formip, 1024, stdin);

pch = strtok (formip,"=&");
while (pch != NULL)
{
    printf ("%s\n",pch);
    pch = strtok (NULL, "=&");
    printf ("<br>\n");
}

これにより、次のような出力が生成されます。

checkbox,checked,value,2
checkbox,checked,value,3

「チェックボックス」または「値」の文字列を書き込まないようにこれを拡張する方法を知っている人はいますか?

4

2 に答える 2

1

strcmp文字列が等しいかどうかを確認するために使用できます。次の呼び出しをスキップしないことが重要strtokです。そうしないと、無限ループに陥ります。

while (pch != NULL  )
{
    if( strcmp( pch, "value") != 0 && strcmp(pch, "checkbox") != 0)
    {  
       printf ("%s\n",pch);
       printf ("<br>\n");
    }
    pch = strtok (NULL, "=&");
}
于 2013-05-21T13:54:12.907 に答える
1

印刷する前にこれらの不要な文字列を比較してスキップするコードを追加する必要があります。

while(pch != NULL)
{
  if(strcmp(pch, "checkbox") == 0 || strcmp(pch, "value") == 0)
    continue;
}
于 2013-05-21T13:49:57.893 に答える