有点坑,
1,两个连续大写,cap;1个,shift
2,两个小写,取消cap,否则shift,但最后一个时取消cap;
注意 :
1.cap下:shfit+x为小写;x为大写;
2.不在cap下:shfit+x为大写,x为小写;
最后要把cap取消;
#include<stdio.h>
#include<string.h>
int main ()
{
int t,n,i,f,dd;
char a[302];
scanf("%d",&t);
while(t--)
{
scanf("%s",a);
n=0;
f=0;
dd=strlen(a);
for(i=0;i<dd;i++)
{
if(a[i]>='A'&&a[i]<='Z')
{
if(f)
n++;
else
{
n+=2;
if(a[i+1]>='A'&&a[i+1]<='Z')
f=1;
}
}
else
{
if(!f)
n++;
else
{
n+=2;
if(a[i+1]>='a'&&a[i+1]<='z'||a[i+1]=='\0')
f=0;
}
}
}
if(f)
n++;
printf("%d\n",n);
}
return 0;
}