我有这个错误:'char'类型的参数与char *类型的参数不兼容

时间:2016-11-20 00:16:28

标签: c pointers char

我的程序应该以小写形式转换所有字符,除了单词开头的字符。例如bla bla bla应该成为Bla Bla。

#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'的参数与char *类型的参数不兼容”     }

1 个答案:

答案 0 :(得分:1)

我认为你的意思是

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