其他分享
首页 > 其他分享> > P5733 自动修正

P5733 自动修正

作者:互联网

字符串题解第一弹~

千万不能错过的原题连接
今天就研究一下这道自动修正问题哈 首先,我们看到了小写转大写的时候,就知道该祭出字符界的大佬级选手ASCII来解决这道问题,然后又看到了一个非常关键的信息

字符串里不包含空格

那这样的话就可以轻轻松松的用printf来输入啦(但本人疑似用惯了cin和cout),下面请出程序中的灵魂:

  1. 输入数据(这是改变不了滴)
  2. 将字符串利用下标筛选出没有变成大写的英文字符(注意关键语言if(a[i]>96&&a[i]<123)
  3. 用(int)强制类型转换再将该字符的ASCII值-32
  4. 把转换完的大写字母替换掉原来的字符
  5. 输出
    这里呢,我偷了一点懒,没错就是第四条(似乎再定义一个字符串占得不是,而是我的脑子),还有要注意的就是第二条,一定要用&&啊!!!千万不要只判定一个(而且第二条我也偷懒了,如有发现,欢迎评论)
    梳理完步骤后,我很快就敲出了这个代码(借鉴群里某位人才的做法,我也不使Markdown里看的强迫症发晕的插入代码了)

include

include

using namespace std;
int main()
{
char a[150];
int z;
cin>>a;
z=strlen(a);
for(int i=0;i<z;i++){
if(a[i]>97&&a[i]<122)
a[i]=(int)a[i]-32;
}
cout<<a;
return 0;
}
我满心欢喜的把代码提交上去,结果5个测试点全WA了!!!
我一看程序。。。
if语句把a和z给搞丢了,所以赶紧补上,以下是AC代码

include

include

using namespace std;
int main()
{
char a[150];
int z;
cin>>a;
z=strlen(a);
for(int i=0;i<z;i++){
if(a[i]>96&&a[i]<123)
a[i]=(int)a[i]-32;
}
cout<<a;
return 0;
}
好了~本篇题解就到此为止咯!

标签:cout,P5733,int,32,修正,cin,自动,&&,include
来源: https://www.cnblogs.com/xuxiwen/p/14802505.html