@sensitive-cs
2016-10-04T23:17:16.000000Z
字数 569
阅读 837
满足条件的字符串是字母全部为大写字母,或者除了第一个字母都是大写的字符串。转换的规则是反转,即大写变小写,小写变大写。
对于一个字符串首先判断是否符合规则:只需判断除了带一个字母以外的字母是否全部为大写。然后符合条件的用大写字母与小写字母的ascii码之差进行转换。
#include <stdio.h>
int main()
{
char a[110];
while (scanf("%s",a) != EOF)
{
int n = 0,i = 0;
int flag1 = 0,flag2 = 1,flag3 = 0;
while (a[n] != '\0')
n++;
if (a[0] >= 'a' && a[0] <= 'z')
flag1 = 1;
for (i = 1;i < n;i++)
{
if (a[i] >= 'A' && a[i] <= 'Z')
flag2++;
}
for (i = 0;i < n;i++)
{
if (a[i] >= 'A' && a[i] <= 'Z')
flag3++;
}
if (flag1 == 1 && flag2 == n)
{
for (i = 0;i < n;i++)
{
if (i == 0)
a[i] -= ('a' - 'A');
else
a[i] += ('a' - 'A');
}
}
else if (flag3 == n)
{
for (i = 0;i < n;i++)
a[i] += ('a' - 'A');
}
printf("%s\n",a);
}
return 0;
}