m0_73992796 2022-11-22 21:06 采纳率: 66.7%
浏览 1
已结题

关于##include#的问题,如何解决?

问题遇到的现象和发生背景
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    char s[105];
    scanf("%s",s);
    for(int i=0;i<strlen(s);i++)
    {
        if(s[i]>='a'&&s[i]<='z')
        printf("%c",s[i]-'a'+'A');
        else
        printf("%c",s[i]);
    }
    return 0;
}

我:s[i]-'a'+'A'什么意思啊
  • 写回答

2条回答 默认 最新

  • 编程所以然 2022-11-22 21:35
    关注

    按照ASCII计算。
    'a'=97,'A'=65,就是说小写字母的ASCII码比大写字母大32,
    所以-97+65=-32,就可以把小写字母变成大写。
    你可以直接改成s[i]-32
    (-a+A) (-b+B) (-c+C)都可以(懒得写引号了),他们的值都是-32,表示任意字母的小写ASCII比大写大32。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月22日

悬赏问题

  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写