C中字符前面的预期表达式

C中字符前面的预期表达式,c,function-call,C,Function Call,我正在做一个单词搜索程序,不断地得到同样的错误,并没有给我太多关于错误的信息。特别是它说 wordSearch.c:38:32: error: expected expression returnWord=(char*)strstr(char常量*句子,char常量*短语); ^ ^ 这可能是什么?returnWord=char*strstr(const-char*句子,const-char*短语) 这不是调用函数的方式。摆脱返回类型,只需使用 returnWord = strstr(se

我正在做一个单词搜索程序,不断地得到同样的错误,并没有给我太多关于错误的信息。特别是它说

wordSearch.c:38:32: error: expected
  expression
returnWord=(char*)strstr(char常量*句子,char常量*短语); ^
^

这可能是什么?

returnWord=char*strstr(const-char*句子,const-char*短语)

这不是调用函数的方式。摆脱返回类型,只需使用

returnWord = strstr(sentence, phrase);

假设
语句
短语
是定义的变量,并且具有适当的值。

returnWord=char*strstrstr(const char*语句,const char*短语)

这不是调用函数的方式。摆脱返回类型,只需使用

returnWord = strstr(sentence, phrase);

假设
句子
短语
是变量,并且定义了正确的值。

根据图片,strstrstr似乎有问题。这是有道理的,因为你传递论点的方式
strstr
需要两个
const char*
参数,但是您对它们进行了错误的转换。另外,由于
strstr
已经返回了
char*
,因此无需强制转换该字符。因此,第38行应该是
returnword=strstrstr((const char*)句子,(const char*)短语)

根据图片,strstrstr
似乎有问题。这是有道理的,因为你传递论点的方式
strstr
需要两个
const char*
参数,但是您对它们进行了错误的转换。另外,由于
strstr
已经返回了
char*
,因此无需强制转换该字符。因此,第38行应该是
returnword=strstrstr((const char*)句子,(const char*)短语)

如果
returnWord
是char*,那么您需要强制转换为
(char*)
@Riad为什么需要强制转换?不知道returnWord变量。如果是字符串,则可以直接使用。但他写的是字符,没有括号。。。这可能会导致错误。@ Riad,这不是C++。1) 没有
字符串
类型,2)语法错误,因为OP在调用中的其他位置也使用了该类型,这表明OP的函数调用语法错误。如果
返回词
为char*,则需要将其转换为
(char*)
@Riad为什么需要强制转换?不知道returnWord变量。如果是字符串,则可以直接使用。但他写的是字符,没有括号。。。这可能会导致错误。@ Riad,这不是C++。1) 没有
string
type,2)语法错误,因为OP在调用中的其他位置也使用了该类型,这表明OP的函数调用语法错误。在(char*)中添加了括号尝试此操作时,我发现了切分错误11@Sourav Ghosh指出了明显的语法错误,如果您有切分错误,我建议您在将其传递给strstr()函数之前检查句子和短语变量的值。如果它们为空,只需从wordSearch函数返回即可。即使没有解决,您也需要使用“-g”标志再次编译它,并在GDB上运行它。尝试此操作时,我发现分段错误11@Sourav Ghosh指出明显的语法错误是正确的,如果您有分段错误,我建议您在将其传递给strstr()之前检查句子和短语变量的值功能。如果它们为空,只需从wordSearch函数返回即可。即使没有解决,你也需要用“-g”标志再次编译它并在GDB上运行。在原始postah中包含wordsearch.c程序好的,我添加了一张图片在原始postah中包含wordsearch.c程序好的,我添加了一张图片