寫這個隨筆的起因很奇怪。
我本來想找找C++有沒有內置的函數(類似isalpha()
, isdigit()
, isalnum()
之流)能直接完成這個功能,但是函數沒發現,卻發現很多博客都是逐個字符判斷的寫法:
isLowercaseVowel = (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
isUppercaseVowel = (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');
if (isLowercaseVowel || isUppercaseVowel) ....
除此之外還真沒搜到更好的寫法,難道大家的博客都是你抄我我抄你?
這幾句話太長了,太jb復雜了,一會兒等號,一會兒單引號,一會兒豎線分隔符,敲一遍要好幾十秒。頻繁使用為了避免函數調用加快執行速度是可以這樣寫的,但是如果我對速度沒有那么高的要求呢,怎么寫得簡單一點呢?
const string p="aeiouAEIOU";
if (p.find(c) != string::npos) ...
這樣就像python的c in 'aeiouAEIOU'
,不是要簡潔的多嗎?