Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,959 questions

51,901 answers

573 users

How to create the DJB2 hash function for strings in C

2 Answers

0 votes
#include <stdio.h>
 
unsigned int DJB2(char str[], int size) {
    unsigned int hash = 5381;
   
    for (int i = 0; i < size; i++) {
        hash = ((hash << 5) + hash) + str[i];
    }
        
    return hash;
}

int main() {
    char str[] = "c c++";

    unsigned int hash = DJB2(str, strlen(str));

    printf("%d", hash);
}



/*
run:
         
252817665
 
*/ 
  
   

 



answered Oct 8, 2023 by avibootz
0 votes
#include <stdio.h>
#include <ctype.h>

unsigned int DJB2(char str[]) {
    unsigned int hash = 5381;
    int ch;

    while ((ch = *str++)) {
        if (isupper(ch)) {
            ch = ch + 32;
        }

        hash = ((hash << 5) + hash) + ch; 
    }

    return hash;
}

int main() {
    char str[] = "c c++";

    unsigned int hash = DJB2(str);

    printf("%d", hash);
}



/*
run:
         
252817665

*/ 
  
   

 



answered Oct 8, 2023 by avibootz

Related questions

1 answer 105 views
1 answer 127 views
1 answer 124 views
1 answer 111 views
1 answer 143 views
...