bool detectCapitalUse(char *word)
{
    int len = strlen(word);
    if (len == 1)
        return 1;
    int countUpper = 0, i;
    for (i = 0; i < len; i++)
    {
        if (isupper(word[i]))
            countUpper++;
    }
    /* All lower case */
    if (countUpper == 0)
        return 1;
    /* 1st character is upper, and the rest is lower case */
    if (countUpper == 1 && isupper(word[0]))
        return 1;
    /* Check all character is upper case? */
    else
        return countUpper == len;
}

/* Another way */
bool isAllUpper(char *word)
{
    int len = strlen(word);
    for (int i = 0; i < len; i++)
    {
        if (islower(word[i]))
            return 0;
    }
    return 1;
}
bool detectCapitalUse(char *word)
{
    int len = strlen(word);
    for (int i = 1; i < len; i++)
    {
        if (isupper(word[i]) && !isAllUpper(word))
            return 0;
    }
    return 1;
}

520