小单同学shan 2022-02-14 22:32 采纳率: 100%
浏览 35
已结题

c++字符串问题,求解!

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
    char a[90]={0};
    cin.getline(a,90);
    for(int i=0;a[i];i++){
        if(a[i]>='A'&&a[i]<='Y'){
            a[i]+=1;
        }
        if(a[i]=='Z'){
            a[i]='A';
        }
        if(a[i]>='a'&&a[i]<='y'){
            a[i]+=1;
        }
        if(a[i]=='z'){
            a[i]='a';
        }
    } 
    cout<<a;
    
    
    return 0;
}

运行结果及报错内容

为什么Y会变成A,y会变成a

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 谛凌 2022-02-14 23:01
    关注

    你需要先判断字符 'Z' 喔,因为如果先判断 'Y',它会被改成'Z','Z'进而被改成了'A',小写同理。
    改法:

    • 将后面三个if都改成else if
    • 将z的判断写在最前面
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月14日