鱼C论坛

 找回密码
 立即注册
查看: 1295|回复: 8

[已解决]c语言

[复制链接]
发表于 2021-2-6 17:04:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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 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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-6 17:06:58 | 显示全部楼层
本帖最后由 李京 于 2021-2-6 17:08 编辑

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

看代码是没有什么错误的,是不是你的理解哪里错了
你这个代码是在vs上编写的,可以的话把版本也发出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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) ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-6 21:41:21 | 显示全部楼层
这个程序只有输入小写字母才可以啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-8 00:57:11 | 显示全部楼层
李京 发表于 2021-2-6 17:06
可以把你的问题说明白吗,
你希望的输出是什么,
最好是弄一个输入输出示例

刚刚用这个  没找到截图  图片
希望小写字母转为大写字母  vs2013
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-8 01:19:41 | 显示全部楼层
张邦焱 发表于 2021-2-8 00:57
刚刚用这个  没找到截图  图片
希望小写字母转为大写字母  vs2013

输出是 xxx.exe已停止工作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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怎么禁止不安全函数的警告
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 18:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表