是迟迟钟鼓呀 2023-02-15 10:56 采纳率: 100%
浏览 34
已结题

请问一下这个代码为什么只能小写变大写,大写不能自动变小写,检查了后没有发现错误唉(关键词-字符串)

请问一下这个代码为什么只能小写变大写,大写不能自动变小写,检查了后没有发现错误唉。求帮忙看下哪里有错,万分感谢!

img


代码如下(它的功能是:将字符串 tt 中的大写字母都改为对应的小写字母,
小写字母都改为对应的大写字母,其它字符不变。要求输入输出均在主函数中完成)

#include<stdio.h>
#pragma warning(disable:4996)
/*10.编写函数void fun(char tt[]),它的功能是:将字符串 tt 中的大写字母都改为对应的小写字母,
小写字母都改为对应的大写字母,其它字符不变。要求输入输出均在主函数中完成。*/
int main()
{
    void fun(char tt[]);
    char str1[50];
    printf("请输入str1\n");
    gets(str1);
    fun(str1);
    printf("%s\n", str1);
    return 0;
}
void fun(char tt[])
{
    int i;
    for (i = 0; tt[i] != '\0'; i++)
    {
        if (tt[i] >= 'A' && tt[i] <= 'Z')
            tt[i] += 32;
        if (tt[i] >= 'a' && tt[i] <= 'z')
            tt[i] -= 32;
    }
}

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2023-02-15 11:00
    关注

    22行改为else if
    否则如果字符为大写,那么20行的if会将大写改为小写,而22行的if会再把这个小写改为大写的。两个if条件会都满足。

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM