【问题标题】:How to check if a string is subset of another string in C如何检查一个字符串是否是C中另一个字符串的子集
【发布时间】:2020-10-14 15:02:17
【问题描述】:

我想创建一个函数来检查一个数组是否派生自 C 中另一个数组的元素。这是我的代码。我不知道为什么它不起作用。

int allDelimiter(char str[81], char delimiters[])
{
    int k = 0;

    char* pch = strstr(str, delimiters);

    if (pch)
    {
        k++;
    }
    return k;
}

int main()
{
    char string[81] = { ",?',,," };
    
    char delim[] = ", ? ! ''";
    int j = 0;

    j = allDelimiter(string, delim);

    if (j > 0)
    {
        puts("ALL DELIMITERS");
    }
    else
    {
        puts("NOT ALL DELIMITERS");
    }
    return 0;
}

我希望输出为ALL DELIMITERS,即str[] 的所有元素都是delim[] 的元素。

【问题讨论】:

  • 您确定要定义 char string[81] = { ",?',,," };像这样?

标签: c arrays string function substring


【解决方案1】:

如果我理解了这个问题

//returns zero if yes
int containsAll(const char *str, const char *charlist)
{
    int result = 0;
    while(*str)
    {
        if(!strchr(charlist, *str++))
        {
            result = -1;
            break;
        }
    }
    return result;
}

int main()
{
    char string[81] = { ",?',,," };
    
    char delim[] = ", ? ! ''";

    if (!containsAll(string, delim))
    {
        puts("ALL DELIMITERS");
    }
    else
    {
        puts("NOT ALL DELIMITERS");
    }
    return 0;
}

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 2011-02-07
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多