使用单词作为strtok的分隔符?

时间:2013-12-07 05:27:26

标签: c

我正在尝试读取文件并识别命令行中提供的单词实例。但是,当我使用它时:

strtok(line,argv[2])

它标识argv中存在的任何字母的任何实例[2](据我所知这是strtok的工作原理)但我只希望它能识别字符串的完全匹配。如果我需要使用strtok,有没有办法解决这个问题?谢谢!

2 个答案:

答案 0 :(得分:0)

查看函数strstr(char *str1, char *str2)

#include <stdio.h>
#include <string.h>

int main ()
{
    char str[] ="A random string.";
    char *pch;

    pch = strstr(str,"random");

    if(pch == NULL)
    {
        puts("Doesn't contain random");
    }
    else
    {
        puts("Contains random");
    }

    return 0;
}

答案 1 :(得分:0)

strtok将基于给定列表将字符串作为第二个参数进行tokanize。它将使用字符组合。例如,如果第二个参数包含一个字符串“abcd”,那么如果它找到'a','ab','abc'或'abcd',strtok将对这些字符串进行标记。 根据您的要求,您可以使用strstr(string,substring)。此函数将返回第一次出现的字符串的指针。通过使用此功能,您可以编写自己的函数,该函数将根据您的需求对子字符串中的字符串进行标记。