从键盘输入一行字符,如果是小写字母,转换成大写字母输出;如果是大写字母,转换成小写字母输出;其它字符转换成*号输出。
#include
#include
int main()
{
char a[100];
int count = 0;
int i, j;
gets(a);
count = strlen(a);
for (i = 0; i < count; i++)
{
if (a[i] >= 65 && a[i] <= 90)
{
a[i] += 32;
}
if (a[i] >= 97 && a[i] <= 122)
{
a[i] -= 32;
}
else
a[i] = '*';
}
for (j = 0; j < count; j++)
{
printf("%c", a[j]);
}
return 0;
}
小写被转换成了大写,但是大写没有被转换成小写
应小写转换成大写,大写转换成小写。但是程序只转换了小写
if (a[i] >= 97 && a[i] <= 122)
改为
else if (a[i] >= 97 && a[i] <= 122)
否则上面的if判断大写字符时,加上32变为小写字符。你这里又是if的话,又会满足条件,结果又减去32变成小写的了。所以要用else if
第二个if改成else if
两个if都会执行,先执行第一个if变成小写的,此时也满足第二个if,继续执行,+了32,又变回大写了
所以得用if,else if,else
有用记得采纳呐