类似于C/C++的Python“if x in y”的操作?

类似于C/C++的Python“if x in y”的操作?,c++,python,c,C++,Python,C,我了解Python已经有一段时间了,试图了解C语言 我想知道是否有类似于Python的东西 if x in y: 例如,如果x为2,y为2540,则该语句为true,因为y包含x作为数字 对于C/C++有类似的东西吗?因为如果在C++中有.< /p>< p>,如果y是STD::string或标准集合,那么可以使用集合或自己的find方法来查看它是否在集合中。 在C语言中,如果y是一个字符串,您可以使用来查看字符串中是否有字符 对于整数,没有这样的方法。你可以用C++或C转换数字,然后使用上面提

我了解Python已经有一段时间了,试图了解C语言

我想知道是否有类似于Python的东西

if x in y:
例如,如果x为2,y为2540,则该语句为true,因为y包含x作为数字

对于C/C++有类似的东西吗?因为如果在C++中有.< /p>< p>,如果y是STD::string或标准集合,那么可以使用集合或自己的find方法来查看它是否在集合中。 在C语言中,如果y是一个字符串,您可以使用来查看字符串中是否有字符

对于整数,没有这样的方法。你可以用C++或C转换数字,然后使用上面提到的方法之一。在C++中,

< P>,如果Y是STD::string或标准集合,你可以使用例如集合或自己的find方法来查看它是否在集合中。 在C语言中,如果y是一个字符串,您可以使用来查看字符串中是否有字符

对于整数,没有这样的方法。您可以使用C++或C中的数字转换为字符串,然后使用上面提到的方法之一。< /P> < P>我不会将数字转换为字符串,以解决这个特定问题< /P> 仅仅因为这是不必要的。相反,请查看以下函数C代码:

#include <assert.h>

int is_digit_in_number(unsigned char digit, unsigned int number)
{
    assert(digit < 10);
    while(number)
    {
        if(number % 10 == digit)
            return 1;
        number /= 10;
    }
    return 0;
}
这节省了将数字转换为字符串的开销,并为编译器提供了一些智能优化的空间。此外,在我看来,代码应该做什么对读者来说更为清晰,这始终是一件好事:

干杯, Andy

对于这个特殊问题,我不会将数字转换为字符串

仅仅因为这是不必要的。相反,请查看以下函数C代码:

#include <assert.h>

int is_digit_in_number(unsigned char digit, unsigned int number)
{
    assert(digit < 10);
    while(number)
    {
        if(number % 10 == digit)
            return 1;
        number /= 10;
    }
    return 0;
}
这节省了将数字转换为字符串的开销,并为编译器提供了一些智能优化的空间。此外,在我看来,代码应该做什么对读者来说更为清晰,这始终是一件好事:

干杯,
Andy

x和y是字符串?字符串或整数。我确信它适用于这两种类型。在我对C的特殊困境中,它们是int:TypeError:int类型的参数不可iterable,因此这对int不起作用。x和y是字符串?字符串,或int。我确信它是用这两种类型来工作的。在C的特殊困境中,它们是INT:Type Error:INTING类型的参数不是迭代的,所以这对于INTS来说是不起作用的。正如Joachim Pileborg所说,对于C++字符串或容器,使用STD::Debug,而对于C字符串使用标准库函数Strucr。对于整数,问题是“2540”中是否有“2”?毫无意义。整数2540是2540;它没有一个2。。。除非你把它看成是一个十进制字符串。这会带你回到查找和搜索。正如Joachim Pileborg所说,对于C++字符串或容器,使用STD::Debug,而对于C字符串使用标准库函数Strucr。对于整数,问题是“2540”中是否有“2”?毫无意义。整数2540是2540;它没有一个2。。。除非你把它看成是一个十进制字符串。这会带你回到查找和搜索。依我拙见