我已经了解 Python 有一段时间了,试图了解 C。
我想知道是否有类似 Python 的东西
if x in y:
例如 if x
is2
和y
is2540
语句为真,因为y
containsx
为数字。
C/C++ 有类似的东西吗?因为如果有的话我还没有找到。
在 C++ 中,如果y
是一个std::string
或标准集合,您可以使用 eg std::find
(或集合自己的find
方法)来查看它是否在集合中。
在 C 中,如果y
是一个字符串,您可以使用它strchr
来查看一个字符是否在字符串中。
对于整数,没有这样的方法。您可以将数字转换为字符串(std::to_string
在 C++ 或strtol
C 中使用),然后使用上述方法之一。
对于这个特定问题,我不会将数字转换为字符串
只是因为没有必要。相反,请查看此函数(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 让读者更清楚代码应该做什么,这总是一件好事:)
干杯,安迪