最初の単語をすべて大文字にしようとしていますが、最初の単語を無視して 2 番目にジャンプします。「apple macbook」は「apple macbook」のはずですが、「apple macbook」になってしまいます。for ループの前に追加printf(" %c", toupper(string[0]));
して for ループに変更p=1
すると正しい結果が得られますが、文字列がスペースで始まると失敗します。コードは次のとおりです。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char string[] = "apple macbook";
int p;
for(p = 0; p<strlen(string); p++)
{
if(string[p] == ' ')
{
printf(" %c", toupper(string[p+1]));
p++;
}
else
{
printf("%c", string[p]);
}
}
return 0;
}