Language: C++

#include<stdio.h>
#include<string.h>

#define M 1046527
#define NIL (-1)
#define L 14

char H[M][L];

int getChar(char ch){
  if ( ch == 'A' ) return 1;
  else if ( ch == 'C' ) return 2;
  else if ( ch == 'G' ) return 3;
  else if ( ch == 'T' ) return 4;
  else return 0;
}

long long getKey(char str[]) {
  long long sum = 0, p = 1, i;
  for ( i = 0; i < strlen(char()); i++ ) {
    sum += p * (getChar(str[i]));
    p *= 5;
  }
  return sum;
}

int h1(int key){ return key % M; }
int h2(int key){ return 1 + (key % (M - 1)); }

int find(char str[]) {
  long long key, i, h;
  key = getKey(str);
  for ( i = 0; ; i++) {
    h = ( h1(key) + i * h2(key));
    if ( strcmp(H[h] , str) == 0) return 1;
    else if (strlen(H[h] == 0)) return 0;
  }
  return 0;
}

int insert(char str[]){
  long long key, i, h;
  key = getKey(str);
  for(i = 0; ;i++){
    h = (h1(key) + i*h2(key)) % M;
    if ( strcmp(H[h], str) == 0 ) return 1;
    else if (strlen(H[h] == 0)) {
      strcpy(H[h] str) = key;
      return 0;
    }
  }
  return 0;
}

int main() {
  int i, n, h;
  char str[L], com[9];
  for ( i = 0; i < M; i++ ) H[i][0] = '\0';
  scanf("%d", %n);
  for ( i = 0; i < n; i++) {
    scanf("%s %s", com, str);

    if ( com[0] == 'i' ) {
      insert(str);
    } else {
      if ( find(str) ) {
        printf("yes\n");
      } else {
        printf("no\n");
      }
    }
  }
  return 0;
}


Compiler output:
a.cc: In function 'long long int getKey(char*)':
a.cc:20:26: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
   20 |   for ( i = 0; i < strlen(char()); i++ ) {
      |                    ~~~~~~^~~~~~~~
      |                          |
      |                          char
In file included from a.cc:2:
/usr/include/string.h:407:35: note:   initializing argument 1 of 'size_t strlen(const char*)'
  407 | extern size_t strlen (const char *__s)
      |                       ~~~~~~~~~~~~^~~
a.cc: In function 'int find(char*)':
a.cc:36:26: error: cannot convert 'bool' to 'const char*'
   36 |     else if (strlen(H[h] == 0)) return 0;
      |                     ~~~~~^~~~
      |                          |
      |                          bool
/usr/include/string.h:407:35: note:   initializing argument 1 of 'size_t strlen(const char*)'
  407 | extern size_t strlen (const char *__s)
      |                       ~~~~~~~~~~~~^~~
a.cc: In function 'int insert(char*)':
a.cc:47:26: error: cannot convert 'bool' to 'const char*'
   47 |     else if (strlen(H[h] == 0)) {
      |                     ~~~~~^~~~
      |                          |
      |                          bool
/usr/include/string.h:407:35: note:   initializing argument 1 of 'size_t strlen(const char*)'
  407 | extern size_t strlen (const char *__s)
      |                       ~~~~~~~~~~~~^~~
a.cc:48:18: error: expected ')' before 'str'
   48 |       strcpy(H[h] str) = key;
      |             ~    ^~~~
      |                  )
a.cc:48:13: error: too few arguments to function 'char* strcpy(char*, const char*)'
   48 |       strcpy(H[h] str) = key;
      |       ~~~~~~^~~~~~~~~
/usr/include/string.h:141:14: note: declared here
  141 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
a.cc: In function 'int main()':
a.cc:59:15: error: expected primary-expression before '%' token
   59 |   scanf("%d", %n);
      |               ^