1

我有一些 C 代码,它从 STDIN 读取 HTML 表单的内容,目前标记字符串。

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 回答