c - strcmp 参数类型错误

标签 c

我尽量不使用 isSpace 函数,所以唯一想到的是 strcpy 但我收到错误

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

Warning 86: argument 1 conflicts with formal definition

有人知道如何解决这个问题吗? space_const 是一个 char 初始化为 ""

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 );
}

最佳答案

你正在尝试比较一个字符(小整数)和一个字符串。

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

strcmp(a[walker - 1], space_const);
         ^ character

strcmp 看起来像这样

int strcmp(const char *s1, const char *s2);
                  ^ string        ^ string

您可能想要这样的东西:

(a[walker - 1] == ' ' || a[walker - 1] == '\t' || ..)

你应该写一个函数。但是你最终会重写isspace

为什么你不能首先使用 isspace

关于c - strcmp 参数类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6903397/

相关文章:

c - Swift 常量比 C 中的常量更强大

C:当指针实际上指向某物时,函数不断接收归零指针

objective-c - 有没有办法使用 CFNetwork 从 ftp 服务器删除文件/文件夹?

c - MPI_Send 和 MPI_Recv 段错误

c - 批处理文件中设置的环境变量无法在该文件编译的C代码中访问

c - 指向链表指针的指针

java - 使用java查找c文件中的宏变量

c - 指针赋值导致程序停止

c - 使用recv()仅接收一个字节

c++ - 如何加入在c/c++中动态创建的线程