文字列をunsignedchar*に変換しようとしています。そして、私は輪になって走っています。私のプログラムは、文字列として取り込む姓の入力をユーザーに求めます。次に、djb2を使用して文字列を整数にハッシュします。これは、unsignedchar*をパラメーターとして受け取ります。私のプログラムの目標は、連鎖を使用して衝突を処理するハッシュテーブルを作成することです。
unsigned long djb2(unsigned char *str)
{
unsigned long hash = 5381;
int c;
while (c = *str++)
hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
return hash;
}
私のコードは次のatmです。
void insert(LinkedList<Person>* HashList1[], LinkedList<Person>* HashList2[], int listSize)
{
char * cstr;
string str;
cin >> str;
cstr = new char [str.size()+1];
strcpy (cstr, str.c_str());
int hashBucket1 = djb2(cstr) % listSize;
}
「「char*」型の引数は「unsignedchar*」型のパラメータと互換性がない」という上記のエラーが発生しました。助けていただければ幸いです。