Obito_TXP 2021-07-03 15:15 采纳率: 100%
浏览 32
已采纳

为什么asc2码转换大小写的时候,if语句只执行最后一个if语句,但是加上了else功能又正确了

#include
using namespace std;
int main()
{
char a[2];
for (int i = 0; i < 2; i++)
{
cin >> a[i];
}
for (int i = 0; i < 2; i++)
{

     if (a[i] >= 65 && a[i] <= 90)
    {
        a[i] += 32;
    }
     if (a[i] >= 97 && a[i] <= 122)
    {
        a[i] -= 32;
    }
}
for (int i = 0; i < 2; i++)
{
    cout << a[i] << " ";
}

return 0;

}

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-07-03 15:25
    关注

    第一个if语句已经将大写转为小写的ascii了,
    由于第二个不是else if判断,会继续执行if判断a[i]的值,符合小写的ascii,所有又-32变会大写了

    就拿A来说,a[i]为65,第一个判断成功,a[i]+32的值变97【a】。
    由于不是else if,会继续执行if判断,符合,a[i]-32=65,又变成65大写A的ascii了。

    对你有帮助能点个采纳吗,谢谢~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号