@sensitive-cs
        
        2016-10-04T15:17:16.000000Z
        字数 569
        阅读 1045
    满足条件的字符串是字母全部为大写字母,或者除了第一个字母都是大写的字符串。转换的规则是反转,即大写变小写,小写变大写。
对于一个字符串首先判断是否符合规则:只需判断除了带一个字母以外的字母是否全部为大写。然后符合条件的用大写字母与小写字母的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');elsea[i] += ('a' - 'A');}}else if (flag3 == n){for (i = 0;i < n;i++)a[i] += ('a' - 'A');}printf("%s\n",a);}return 0;}