#include unsigned long djb2(const char *str) { unsigned long h = 5381; int c; while ((c = *str++)) { h = ((h << 5) + h) + c; // Essentially equal to: // h = h * 33 + c; } return h; } int main(void) { char *a = "ABC"; printf("Hash: %ld\n", djb2(a)); return 0; }