0

我想创建一个函数来检查一个数组是否派生自 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 DELIMITERSie 的所有元素str[]都是delim[].

4

1 回答 1

0

如果我明白这个问题

//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;
}
于 2020-06-24T11:18:40.650 回答