C_xxzxxhu 2021-10-29 23:44 采纳率: 100%
浏览 53
已结题

C语言,将小写字母转变为大写字母,我的程序有问题吗?


/*接收输入的一个字符串(无空格、制表符等),
将字符串中的小写字母转换为大写字母,输出转换后的字符串,最后必须输出回车。
最长输入20个有效字符(不包括回车)。
例如输入:apple 输出:APPLE
如果字符串中包含了其他字符,均不进行转换,只转换小写字母为大写字母。
如输入:test2test* 输出:TEST2TEST*  */
#include<stdio.h>
#include<string.h>
int main(void)
{
    int i, n;
    char str1[20];
    char str2[20];
    scanf_s("%s", str1);
    i = strlen(str1);
    for(n = i; i >= 0; n--)
    {if (str1[i]>='a' && str1[i] <= 'z')
        str2[n] = str1[i] - 'a' + 'A';
    else
        str2[n] = str1[i];
    i--;
    }
    printf("%s", str2);
        return 0;
    
}

而且用vs2019显示没有问题,但输入后一直没有输出结果。

  • 写回答

2条回答 默认 最新

  • 关注
    for(n = i; i >= 0; n--)i >= 0应该改成n >= 0
    for(n = i; n >= 0; n--)
    

    你题目的解答代码如下:

    #include<stdio.h>
    #include<string.h>
    int main(void)
    {
        int i, n;
        char str1[20];
        char str2[20];
        scanf_s("%s", str1, 20);
        i = strlen(str1);
        for(n = i; n >= 0; n--)
        {if (str1[n]>='a' && str1[n] <= 'z')
            str2[n] = str1[n] - 'a' + 'A';
        else
            str2[n] = str1[n];
        }
        printf("%s", str2);
            return 0;
    }
    

    如有帮助,望采纳!谢谢!

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

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月29日

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥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