题目:字符串若全为大写字母,或者除了第一个字母以外的所有字母都是大写的。在这种情况下,我们应该自动更改所有字母的大小写,其余情况不变
题解:建立字符和初始化整数为0,建立循环,判断是否全为大写,是的话整数为1,再建立循环判断第二种情况,是的话为2,再用if判断,0的话直接输出,1的话换为小写字母,2的话更换字母大小写
#include <iostream>
#include<string>
#include<iomanip>
using namespace std;
int main()
{
char a[101],flag=0;
while (cin>>a)
{
for (int i = 0; a[i]!='\0'; i++)
{
if (a[i] >= 'A'&&a[i] <= 'Z') flag = 1;
else
{
flag = 0;
break;
}
}
if (a[0] >= 'a'&&a[0]<='z'&&strlen(a)>1)
{
for (int i = 1; a[i] != '\0'; i++)
{
if (a[i] >= 'A'&&a[i] <= 'Z') flag = 2;
else
{
flag = 0;
break;
}
}
}
if (flag == 0)
{
if (strlen(a) > 1)
{
for (int i = 0; a[i] != '\0'; i++)
{
cout << a[i];
}
cout << endl;
}
else
{
a[0] -= 32;
cout << a[0] << endl;
}
}
else if (flag == 1)
{
for (int i = 0; a[i] != '\0'; i++)
{
a[i] += 32;
cout << a[i];
}
cout << endl;
}
else
{
a[0] -= 32;
cout << a[0];
for (int i = 1; a[i] != '\0'; i++)
{
a[i] += 32;
cout << a[i];
}
cout << endl;
}
}
}