白0619 2022-06-02 02:33 采纳率: 83.3%
浏览 33
已结题

大小写互换为什么只能换一种?

#include <stdio.h>
#include<string.h>
int main(void){
char str[20];
int i=0;
fgets(str,100,stdin);
for(i=0;str[i]!='\0';i++){
if(str[i]>='a'&&str[i]<='z')
{
str[i]-=32;
} //将第一个if语句放在前面,则小写字母可以转换成大写字母,但是无法完成第二个if语句功能,同理,将第二个if语句放前面,也只能完成第二个if语句,为什么,怎么改
if(str[i]>='A'&&str[i]<='Z'){
str[i]+=32;
}
}
puts(str);
return 0;
}

  • 写回答

5条回答 默认 最新

  • 於黾 2022-06-02 07:52
    关注

    改为if,else if
    不要连写两个if
    否则你前面的if改成小写,后面的if就给改回来
    要让它只能匹配一个,不要两个按顺序都匹配一次

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

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 创建了问题 6月2日

悬赏问题

  • ¥30 win c++ socket
  • ¥15 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的