bool detectCapitalUse(char* word)
{
if(0 != isupper(*word))/*首字母是大写*/
{
if(0 != isupper(*(word + 1)))/*第二个字母如果也是大写,就往后判是否存在小写字母*/
{
word = word + 2;/*前2个字母一定是大写,就不判了*/
while(*word)
{
if(0 != islower(*word))/*如果存在小写字母则返回false*/
{
return false;
}
word++;
}
return true;
}
else/*第二个字母不是大写,就往后判是否存在大写字母,是则返回false*/
{
word = word + 1;/*前1个字母一定是大写,就不判了*/
while(*word)
{
if(0 != isupper(*word))/*如果存在大写字母则返回false*/
{
return false;
}
word++;
}
return true;
}
}
else if(0 != islower(*word))/*首字母是小写*/
{
while(*word)
{
if(0 != isupper(*word))/*如果有大写字母则返回false*/
{
return false;
}
word++;
}
return true;
}
else
{
;
}
/*return 0是没用的,不写编译过不了,经过前边的判断是走不到最后这个return的*/
return 0;
}
此题是本人独立完成的不舍得删除,但是看了题解区大家的结题方式。建议还是使用题解中的解题思路。题解中是通过strlen求出字符串长度,通过遍历字符串,来求出大写字母的个数。再根据题意,去分出大写字母的组合情况。