1

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

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

if x in y:

例如 if xis2yis2540语句为真,因为ycontainsx为数字。

C/C++ 有类似的东西吗?因为如果有的话我还没有找到。

4

2 回答 2

4

在 C++ 中,如果y是一个std::string或标准集合,您可以使用 eg std::find(或集合自己的find方法)来查看它是否在集合中。


在 C 中,如果y是一个字符串,您可以使用它strchr来查看一个字符是否在字符串中。


对于整数,没有这样的方法。您可以将数字转换为字符串(std::to_string在 C++ 或strtolC 中使用),然后使用上述方法之一。

于 2013-02-24T06:50:35.627 回答
3

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

只是因为没有必要。相反,请查看此函数(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;
}

这可以节省您将数字转换为字符串的开销,并为编译器提供一些智能优化的空间。此外,imo 让读者更清楚代码该做什么,这总是一件好事:)

干杯,安迪

于 2013-02-24T07:20:03.070 回答