Language: C

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

int strcmp( const char *A, const char *B){
    return strcmp (*(char * const *)A, (*(char * const *)B);
}


int main () {


    char A[101];
    char B[101];
    char C[101];


    scanf("%s", A);
    scanf("%s", B);
    scanf("%s", C);

    if ( (strcmp (A[sizeof(A)],B[0]) ==0 ) && (strcmp (B[sizeof(B)],C[0])==0) ){
        printf("YES");
    } else {
        printf("NO");
    }

    return 0;
}


Compiler output:
main.c: In function 'strcmp':
main.c:6:60: error: expected ')' before ';' token
    6 |     return strcmp (*(char * const *)A, (*(char * const *)B);
      |                   ~                                        ^
      |                                                            )
main.c:6:61: error: expected ';' before '}' token
    6 |     return strcmp (*(char * const *)A, (*(char * const *)B);
      |                                                             ^
      |                                                             ;
    7 | }
      | ~                                                            
main.c: In function 'main':
main.c:22:20: error: passing argument 1 of 'strcmp' makes pointer from integer without a cast [-Wint-conversion]
   22 |     if ( (strcmp (A[sizeof(A)],B[0]) ==0 ) && (strcmp (B[sizeof(B)],C[0])==0) ){
      |                   ~^~~~~~~~~~~
      |                    |
      |                    char
main.c:5:25: note: expected 'const char *' but argument is of type 'char'
    5 | int strcmp( const char *A, const char *B){
      |             ~~~~~~~~~~~~^
main.c:22:33: error: passing argument 2 of 'strcmp' makes pointer from integer without a cast [-Wint-conversion]
   22 |     if ( (strcmp (A[sizeof(A)],B[0]) ==0 ) && (strcmp (B[sizeof(B)],C[0])==0) ){
      |                                ~^~~
      |                                 |
      |                                 char
main.c:5:40: note: expected 'const char *' but argument is of type 'char'
    5 | int strcmp( const char *A, const char *B){
      |                            ~~~~~~~~~~~~^
main.c:22:57: error: passing argument 1 of 'strcmp' makes pointer from integer without a cast [-Wint-conversion]
   22 |     if ( (strcmp (A[sizeof(A)],B[0]) ==0 ) && (strcmp (B[sizeof(B)],C[0])==0) ){
      |                                                        ~^~~~~~~~~~~
      |                                                         |
      |                                                         char
main.c:5:25: note: expected 'const char *' but argument is of type 'char'
    5 | int strcmp( const char *A, const char *B){
      |             ~~~~~~~~~~~~^
main.c:22:70: error: passing argument 2 of 'strcmp' makes pointer from integer without a cast [-Wint-conversion]
   22 |     if ( (strcmp (A[sizeof(A)],B[0]) ==0 ) && (strcmp (B[sizeof(B)],C[0])==0) ){
      |                                                                     ~^~~
      |                                                                      |
      |                                                                      char
main.c:5:40: note: expected 'const char *' but argument is of type 'char'
    5 | int strcmp( const char *A, const char *B){
      |                            ~~~~~~~~~~~~^