bool hasDigit(char* str)
{
int tmp[256];
for (char i = '0'; i <= '9'; ++i) tmp[i] = 0;
for (char* pos = str; *pos; ++pos) ++tmp[*pos];
for (char i = '0'; i <= '9'; ++i) if (tmp[i]) return true;
return false;
}
bool hasDigit(char* str)
{
int tmp[256];
for (char* pos = str; *pos; ++pos) ++tmp[*pos];
for (char i = '0'; i <= '9'; ++i) if (tmp[i]) return true;
return false;
}
Как человек, который программирует на c++ 95% своего кода, хочу спросить: разве Ваше решение не нарушает strict aliasing и не ведёт себя по-разному на big-endian и little-endian машинах? И побитовый сдвиг в других языках никто не отменял, другое дело, что в интерпретируемых языках это будет явно не один такт, ровно как и любое арифм. действие.
* — возможно, только для всех ноутбуков, поддерживающих windows 7.
Это называется пофиксили? =-O