-2

最初の単語をすべて大文字にしようとしていますが、最初の単語を無視して 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;
}
4

2 に答える 2