下記でコンパイルエラーになる。

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

int main() {
    char *buf="<title>sample</title>";
    char work[256];
    char *p;

    char *out=work;
    char *in=buf;

    in=strstr(in,"<");
    while(strcmp((*p=(*out++ = *in++)),"sample") != 0);
    printf("%c",p);

    //while(strcmp((*out++=*in++),">") != 0);
    *out='\0';
    printf("%s\n",out);
    return 0;
}

下記のエラーが出る。

01.c: In function 'main':
01.c:14:2: warning: passing argument 1 of 'strcmp' makes pointer from integer without a cast [enabled by default]
  while(strcmp((*p=(*out++ = *in++)),"sample") != 0);
  ^
In file included from 01.c:3:0:
c:\mingw\include\string.h:43:37: note: expected 'const char *' but argument is of type 'char'
 _CRTIMP int __cdecl __MINGW_NOTHROW strcmp (const char*, const char*)  __MINGW_ATTRIB_PURE;
                                     ^

済みません。間違いを指摘願います。
尚、出来ればコードでの回答をお願いします。
その方が理解が早いので。協力をお願いします。