我認識的Python了一段時間,試圖讓我的頭周圍C.針對C/C++的操作與Python的「if x in y」類似嗎?
我想知道是否有類似Python的
if x in y:
例如什麼,如果x
是2
和y
是2540
的聲明將是真實的,因爲y
包含x
作爲一個數字。
C/C++有類似的東西嗎?因爲我還沒有找到它。
我認識的Python了一段時間,試圖讓我的頭周圍C.針對C/C++的操作與Python的「if x in y」類似嗎?
我想知道是否有類似Python的
if x in y:
例如什麼,如果x
是2
和y
是2540
的聲明將是真實的,因爲y
包含x
作爲一個數字。
C/C++有類似的東西嗎?因爲我還沒有找到它。
在C++中,如果y
是std::string
或標準集合,則可以使用例如, std::find
(或集合自己的find
方法)查看它是否在集合中。
在C,如果y
是一個字符串,你可以使用strchr
,看是否有字符是的字符串中。
對於整數,沒有這樣的方法。您可以將數字轉換爲字符串(在C++中使用std::to_string
,在C中使用strtol
),然後使用上述方法之一。
我不會將數字轉換成字符串這個特殊問題
,只是因爲它是沒有必要的。相反,看看這個功能(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;
}
這樣可以節省數轉換爲字符串的開銷,並給出了一些編譯器空間智能優化。此外,國際海事組織它更清晰讀者什麼碼應該做的,這始終是一個很好的事情:)
乾杯, 安迪
'x'和'y'都是字符串? – 2013-02-24 06:49:55
字符串或整數。我知道它確實適用於這兩種類型。 – evemzee 2013-02-24 06:55:11
在我對C的困境中,他們是整數:) – evemzee 2013-02-24 06:55:40