比较两个字符串的大小.代码哪里错了

#include <stdio.h>
int MyStrcmp(char *p1, char *p2)
 {
    for (; *p1 == *p2; p1++, p2++)
 {
        if (*p1 == '\0')
            return 0;
  }
    return ('p1'-'p2');
}
int main() 
{
   char *p,*a;
   gets(p);
   gets(a);
  printf("%d",MyStrcmp(*p,*a));
    return 0;
}



#include <stdio.h>
int MyStrcmp(char *p1, char *p2)
{
    for (; *p1 == *p2; p1++, p2++)
    {
        if (*p1 == '\0')
            return 0;
    }
    return *p1 - *p2 > 0?1 : -1;
}
int main()
{
    char s1[100],s2[100];
    char *p = s1, *a = s2;
    gets(p);
    gets(a);
    printf("%d", MyStrcmp(p, a));
    return 0;
}