忽略某些字符串

时间:2013-05-21 13:46:25

标签: c string

我有一些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

有谁知道如何将其扩展为不写“复选框”或“值”字符串?

2 个答案:

答案 0 :(得分:1)

您需要添加一些比较代码,并在打印前跳过这些不需要的字符串:

while(pch != NULL)
{
  if(strcmp(pch, "checkbox") == 0 || strcmp(pch, "value") == 0)
    continue;
}

答案 1 :(得分: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, "=&");
}