strcmp参数类型错误

ken*_*ken 1 c

我试图不使用isSpace函数,所以唯一想到的是strcpy但是我收到了一个错误

while ( walker > 0 &&   strcmp(a[walker - 1],space_const) )

Warning 86: argument 1 conflicts with formal definition
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?space_constchar初始化为" "

char* strTrim(char* string)
{
 char* a= string;

 char delims[3];
 char space_const[] =" ";
 char syntax_const[]=" \t\n\v";
 size_t walker = strlen ( a );
 strcpy(delims,space_const);
 /* Trim trailing spaces */
 while ( walker > 0 &&   strcmp(a[walker - 1],space_const) )
   --walker; 

 a[walker] = '\0';

 /* Trim leading spaces */
 walker = strspn ( a,syntax_const);
 memmove ( a, a + walker, strlen ( a + walker ) + 1 );
 return extractCmd(a ,space_const );
}
Run Code Online (Sandbox Code Playgroud)

cni*_*tar 6

您正在尝试比较字符(小整数)和字符串.

char* a= string;
/*... */

strcmp(a[walker - 1], space_const);
         ^ character
Run Code Online (Sandbox Code Playgroud)

strcmp 看起来像这样

int strcmp(const char *s1, const char *s2);
                  ^ string        ^ string
Run Code Online (Sandbox Code Playgroud)


你可能想要这样的东西:

(a[walker - 1] == ' ' || a[walker - 1] == '\t' || ..)
Run Code Online (Sandbox Code Playgroud)

你应该写一个函数.但最后你会改写isspace.

你为什么不能isspace在第一时间使用?