张邦焱 发表于 2021-2-6 17:04:37

c语言

#include<stdio.h>
void main()
{
        char a, b, c;
        printf("input character a,b,c\n");
        scanf_s("%c %c %c",&a,&b,&c);
        printf("%d,%d%,%d\n%c,%c,%c\n", a, b, c, a - 32, b - 32, c - 32);
}

这个输出结果有问题

李京 发表于 2021-2-6 17:06:58

本帖最后由 李京 于 2021-2-6 17:08 编辑

可以把你的问题说明白吗,
你希望的输出是什么,
最好是弄一个输入输出示例

看代码是没有什么错误的,是不是你的理解哪里错了
你这个代码是在vs上编写的,可以的话把版本也发出来

jackz007 发表于 2021-2-6 17:14:53

本帖最后由 jackz007 于 2021-2-6 17:17 编辑

      a = a - 32 过于武断,只有输入是小写字母的时候才好使,如果输入是大写字母,那么,大小写转换得 a = a + 32
#include <stdio.h>
int main(void)
{
      char a , b , c                                       ;
      printf("input character a,b,c\n")                      ;
      s_scanf("%c%c%c" , & a , & b , & c)                  ;
      printf("%d,%d%,%d\n%c,%c,%c\n", a , b , c , a , b , c) ;
      if (a >= 'a' && a <= 'z') a -= 32                      ;
      else if(a >= 'A' && a <= 'Z') a += 32                  ;
      if (b >= 'a' && a <= 'z') b -= 32                      ;
      else if(b >= 'A' && b <= 'Z') b += 32                  ;
      if (c >= 'a' && a <= 'z') c -= 32                      ;
      else if(c >= 'A' && c <= 'Z') c += 32                  ;
      printf("%d,%d%,%d\n%c,%c,%c\n", a , b , c , a , b , c) ;
}

jh997 发表于 2021-2-6 21:41:21

这个程序只有输入小写字母才可以啊

风过无痕1989 发表于 2021-2-6 23:24:18

函数 scanf_s() 用法不正确,没有传递足够的参数,正确的程序如下:
#include<stdio.h>
void main()
{
        char a, b, c;
        printf("input character a,b,c\n");
        scanf_s("%c %c %c", &a, sizeof(a), &b, sizeof(b),&c, sizeof(c));
        printf("%d,%d%,%d\n%c,%c,%c\n", a, b, c, a - 32, b - 32, c - 32);
}

635924705 发表于 2021-2-7 00:06:27

按这个程序来看只要实现小写变大写和查看acsll,所以我就只是增加了一点容错性,让输入大写字母的话,也不会发生错误变化,就原样输出
#include<stdio.h>
void main()
{
      char a, b, c;
      printf("input character a,b,c\n");
      scanf_s("%c %c %c", &a, sizeof(a), &b, sizeof(b),&c, sizeof(c));
      printf("%d,%d%,%d\n%c,%c,%c\n", a, b, c, a & 0xdf , b & 0xdf, c & 0xdf);
}

张邦焱 发表于 2021-2-8 00:57:11

李京 发表于 2021-2-6 17:06
可以把你的问题说明白吗,
你希望的输出是什么,
最好是弄一个输入输出示例


刚刚用这个没找到截图图片
希望小写字母转为大写字母vs2013

张邦焱 发表于 2021-2-8 01:19:41

张邦焱 发表于 2021-2-8 00:57
刚刚用这个没找到截图图片
希望小写字母转为大写字母vs2013

输出是 xxx.exe已停止工作

李京 发表于 2021-2-8 09:54:06

本帖最后由 李京 于 2021-2-8 10:01 编辑

张邦焱 发表于 2021-2-8 01:19
输出是 xxx.exe已停止工作

建议看看这一篇
ASCII字符表
https://fishc.com.cn/thread-67427-1-1.html
(出处: 鱼C论坛)

然后在加上if else 比较好,


#include<stdio.h>
int main()//这里的话,用int main()比较好void 比较老的写法了
{
    char a, b, c;
    printf("input character a,b,c\n");
    scanf("%c %c %c", &a, &b, &c);
    printf("%d,%d%,%d\n", a, b, c);
    if (a <= 'z' && a >= 'a')//判断a输入的是不是小写字母
    {
      a = a - 32;
    }
    if (b <= 'z' && b >= 'a')//判断b输入的是不是小写字母
    {
      b = b - 32;
    }
    if (c <= 'z' && c >= 'a')//判断c输入的是不是小写字母
    {
      c = c - 32;
    }

    printf("%c %c %c\n", a, b, c);

    return 0;
}

尽量不要用vs 提供的函数,就用c标准的库函数 有一些编译错误,是可以不用管的,至于怎么禁止,看一下这个视频
https://www.bilibili.com/video/BV1oi4y1g7CF?p=3
也可以上网百度,搜vs怎么禁止不安全函数的警告
页: [1]
查看完整版本: c语言