我有这个错误:'char'类型的参数与char类型的参数不兼容*
我的程序应该转换小写字母以外的所有字符,除了字母开头的字符。例如,bla bla bla应该成为bla bla。我有这个错误:'char'类型的参数与char类型的参数不兼容*
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define TRUE -1
#define FALSE 0
void incaps1(char*s)
{int i;
int PreviousCharWasSpace;
for(i=0,PreviousCharWasSpace=TRUE ; i!=sizeof(*s) ; i++)
{ if (*(s+i)==' ')
PreviousCharWasSpace=TRUE;
else{
if (PreviousCharWasSpace)
{ *(s+i)=toupper(*(s+i));
PreviousCharWasSpace=FALSE;
}
}
}
printf("%s\n",*s);
}
int main(){
char phrase[256];
while(gets(phrase)){
char*s=phrase;
incaps1(*s);
}
我在incpas1(S),其强调 '',说的错误 “错误:类型 '字符' 的说法是char *类型的参数不符” }
我觉得你的意思是
incaps1(s);
^^^^
要考虑到这个循环是错误的
for(i=0,PreviousCharWasSpace=TRUE ; i!=sizeof(*s) ; i++)
^^^^^^^^^^^^
似乎必须有至少
for(i=0,PreviousCharWasSpace=TRUE ; i!=strlen(s) ; i++)
^^^^^^^^^^^^
这里也是一个错误
printf("%s\n",*s);
写,而不是
printf("%s\n", s);
^^^
如果我使用incaps1(s);那么我会有错误。 Coursework.exe中的0x5456ED6C(msvcr110d.dll)未处理的异常:0xC0000005:访问冲突读取位置0x00000042。 –
@AlexandrosTsos我在代码中看不到这样的函数名称。也许你的项目有其他文件。 –
它有下面的定义void incaps1(char * s){...} –
请用几句话解释你的程序应该怎么做,如果可能的话您的输入和预期输出的示例。这样,在关注错误之前,没有人需要通读您的代码并尝试理解它应该做什么。 –
我的程序应该将所有字符转换成小写字母,除了字母开头的字符。例如,bla bla bla应该成为bla bla。 –