三刀流.索隆 发表于 2021-7-3 15:51:23

用户输入字符反转大小写‘C S1E11.2课后作业’

本帖最后由 三刀流.索隆 于 2021-7-3 15:51 编辑

废话不多说,上问题:

2. 要求用户输入一个字符,如果是大写字母,将其转换为小写;如果是小写字母,将其转换为大写;其他字符不做处理,并输出结果。

搞了两小时,看我在微软VS2019上实现的代码,虽然有19个警告,但结果正确,哈哈哈,我太有才了{:9_217:}

实现代码如下:

#include <stdio.h>
#define scanf scanf_s

int main()
{
      char f = {""};

      for (int i = 0; i < 10; i++)
      {
                //scanf("%s",f);
                f = getchar();
      }

      for (int i = 0; i < 10; i++)
      {
                if (65 <= f && f <= 98)
                {
                        f = f + 32;
                }

                else if (97 <= f && f <= 122)
                {
                        f = f - 32;
                }
      }
      
      for (int i = 0; i < 10; i++)
      {
                printf("%c\n", f);
      }

      return 0;
}
咦,怎么放图片啊?{:10_245:}

Sungne_jer 发表于 2021-7-3 16:24:12

666

Sungne_jer 发表于 2021-7-3 16:25:49

冒昧问一下,这一行(#define scanf scanf_s)的作用是什么

永恒的蓝色梦想 发表于 2021-7-3 16:33:29

这代码实际开发是要火葬场的

人造人 发表于 2021-7-3 18:37:02

Sungne_jer 发表于 2021-7-3 16:25
冒昧问一下,这一行(#define scanf scanf_s)的作用是什么

就是把之后出现的所有 scanf 都换成 scanf_s
这行代码是有问题的,因为 scanf 和 scanf_s 这两个函数的用法是不一样的
这样直接替换,肯定会出问题的

Sungne_jer 发表于 2021-7-3 18:38:40

人造人 发表于 2021-7-3 18:37
就是把之后出现的所有 scanf 都换成 scanf_s
这行代码是有问题的,因为 scanf 和 scanf_s 这两个函数的 ...

好的,谢谢

三刀流.索隆 发表于 2021-7-4 13:52:00

人造人 发表于 2021-7-3 18:37
就是把之后出现的所有 scanf 都换成 scanf_s
这行代码是有问题的,因为 scanf 和 scanf_s 这两个函数的 ...

可是微软VS2019只支持scanf_s,用scanf会报错的,”#define scanf scanf_s“这样用确实有问题,但能凑合用,实在不行我就换成"getchar"函数{:10_264:}

人造人 发表于 2021-7-4 14:25:11

三刀流.索隆 发表于 2021-7-4 13:52
可是微软VS2019只支持scanf_s,用scanf会报错的,”#define scanf scanf_s“这样用确实有问题,但能凑合用 ...

https://www.baidu.com/s?f=8&rsv_bp=1&rsv_idx=1&rsv_enter=0&rsv_spt=3&rsv_sug3=8&rsv_sug4=88&rsv_sug1=7&rsv_sug7=100&rsv_sug2=0&inputT=1185&word=vs2019%20scanf&tn=48020221_14_hao_pg
https://blog.csdn.net/Liyong_liyong/article/details/106947922
页: [1]
查看完整版本: 用户输入字符反转大小写‘C S1E11.2课后作业’