int substr_equal(const char * a, const char * b, int size) { for (; size > 0; --size) { if (*a != *b) return 0; ++a; ++b; } return 1; } int contains_double(const char * s) { int slen; for(slen = 0; s[slen] != 0; ++slen); for (int i = 0; s[i] != 0; ++i) { if (s[i] == '-') { int l = i - 1; if (l > slen - i) l = slen - i; for (; l > 0; --l) if (substr_equal(s + i - l, s + i + 1, l)) return 1; } } return 0; }