这适用于任何语言,但现在让我们看一下c ++。假设我们有两个必须采用十六进制值的字符:
char b, t;
do {
//some code
} while(((b<'0' || b>'9') && (b<'A' || b>'F')) || ((t<'0' || t>'9') && (t<'A' || t>'F')));
last,最后一个条件看起来很吓人。让我们看一个替代方案:
char b, t;
do {
//some code
} while(string(1,b).find_first_of("0123456789ABCDEF")==-1 || string(1,t).find_first_of("0123456789ABCDEF")==-1);
代码看起来仍然很混乱,但是至少我们可以理解发生了什么:初始化了几个字符串以查看其中是否有一个十六进制字符。
假设性能没有差异,第二个解决方案是否比第一个更好?或者是否有另一种方法可以查看char是否包含十六进制值而不膨胀代码?
如果需要,可以在循环中将字符的大小写更改为ALLCAPS或小写(当前为ALLCAPS)。
我认为您正在寻找std :: isxdigit。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句