入力時に単一文字Chr
があります。 Chr
が大文字の場合、出力はChr
の小文字にする必要があります。条件分岐なしで大文字を小文字に変換する最も効率的な方法
if(Chr>='a' && Chr<='z') cout<<(unsigned char)(a-32);
else cout<<(unsigned char)(a+32);
は、あなたが任意の条件分岐せずにソリューションを提案でした:if else
ステートメントを使用して
簡易実現?
何かのようにChr + 32*(<sign of>(Chr - 'a'))
?
更新:この質問の際に私はASCIIを念頭に置いていました。
実際にはASCIIでこれを行うことができますし、賢明な方法です。 (この制限について言えば、これはたくさんのアップフォースが得られると思う) – Bathsheba
これは入力がアルファベットの文字で、句読点、数字などではない場合にのみ機能します。 – mars
A(41):01000001対a(61):0110,0001。したがって、ビット5(32)がスイッチです。 ASCIIはとても美しいです。 –