我的程序应该以小写形式转换所有字符,除了单词开头的字符。例如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 *类型的参数不兼容” }
答案 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);
^^^