Code Bye

条件关系符的问题

最近正在学习C语言,从课本上抄了一个用条件关系符实现大写字母转换小写字母的代码,不过运行结果不正确,不知道是哪里有问题。请大家帮看看,谢谢。
代码:
#include<stdio.h>
#include<math.h>
main()
{
char ch;
scanf_s(“%c”, &ch);
ch= (ch >= “A”&& ch <= “Z”) ? (ch +32 ) : ch;
printf(“%c\n”, ch);
}
运行结果应该是小写的a,不过得到的却是个?

用的软件是VS2015 community
解决方案

10

不会用_s函数就用原版的函数,这里_s函数需要在传递一个参数
既然用VS2015不看提示么:
1>c:\users\dust\documents\visual studio 2015\projects\project2\test\main.c(5): warning C4473: “scanf_s”: 没有为格式字符串传递足够的参数
1>  c:\users\dust\documents\visual studio 2015\projects\project2\test\main.c(5): note: 占位符和其参数预计 2 可变参数,但提供的却是 1 参数
1>  c:\users\dust\documents\visual studio 2015\projects\project2\test\main.c(5): note: 缺失的可变参数 2 为格式字符串“%c”所需
1>  c:\users\dust\documents\visual studio 2015\projects\project2\test\main.c(5): note: 此参数用作缓冲区大小

60

用scanf_s读%c和%s的时候,必须多传一个参数用来指定需要读入的长度
#include<stdio.h>
#include<math.h>
void main()
{
	char ch;
	scanf_s("%c", &ch, 1);
	ch = (ch >= "A"&& ch <= "Z") ? (ch + 32) : ch;
	printf("%c\n", ch);
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明条件关系符的问题