求大佬们看一下,小甲鱼while语句作业的,为什么这样运行总是有问题??
#include<stdio.h>int main()
{
char str;
int i=0,coust=0;
printf("请输入一行英文句子:");
scanf("%s",str);
while(str!='\0')
{
if(str>='A'&&str<='Z')
{
coust++;
}
i++;
}
printf("你总共输入了%d个大写字母",coust);
return 0;
}
我这里没有问题? 在最上方添加宏定义
#define _CRT_SECURE_NO_WARNINGS
这好象是一种安全问题,挺常见的 什么问题?我这边没问题,你是要可以输入空格吗? 昨非 发表于 2020-8-26 22:13
在最上方添加宏定义
这好象是一种安全问题,挺常见的
加上了也不行{:10_243:} qiuyouzhi 发表于 2020-8-26 22:12
我这里没有问题?
我是用codeblocks的,不跳错,就是运行结果不对 qiuyouzhi 发表于 2020-8-26 22:12
我这里没有问题?
VS下会有scanf安全问题
““scanf”:此函数或变量可能不安全。”
https://s1.ax1x.com/2020/08/26/dfmco6.png 心之火 发表于 2020-8-26 22:16
我是用codeblocks的,不跳错,就是运行结果不对
scanf("%s")不接收空格,你是不是输入空格了?
如果是要接收空格:
#include<stdio.h>
int main()
{
char str;
int i=0,coust=0;
printf("请输入一行英文句子:");
gets(str);// 换成gets(str)就可以接收空格了
while(str!='\0')
{
if(str>='A'&&str<='Z')
{
coust++;
}
i++;
}
printf("你总共输入了%d个大写字母",coust);
return 0;
} baige 发表于 2020-8-26 22:13
什么问题?我这边没问题,你是要可以输入空格吗?
对,就I Love FishC.com!这句 心之火 发表于 2020-8-26 22:15
加上了也不行
那就奇怪了{:10_277:} 用gets 心之火 发表于 2020-8-26 22:16
我是用codeblocks的,不跳错,就是运行结果不对
那你用Dev-C++试试 昨非 发表于 2020-8-26 22:17
VS下会有scanf安全问题
““scanf”:此函数或变量可能不安全。”
我这里用Dev-C++,没有这个问题 #include<stdio.h>
int main()
{
char str;
int i=0,coust=0;
printf("请输入一行英文句子:");
gets(str);// 换成gets(str)就可以接收空格了
while(str!='\0')
{
if(str>='A'&&str<='Z')
{
coust++;
}
i++;
}
printf("你总共输入了%d个大写字母",coust);
return 0;
} baige 发表于 2020-8-26 22:17
scanf("%s")不接收空格,你是不是输入空格了?
如果是要接收空格:
可以了,大佬,那为什么scanf语句不能做到这个呢? 心之火 发表于 2020-8-26 22:20
可以了,大佬,那为什么scanf语句不能做到这个呢?
scanf将读取并忽略空白字符(空白字符包含空格、回车和制表符);
遇到空白字符scanf就结束了 心之火 发表于 2020-8-26 22:17
对,就I Love FishC.com!这句
你自己代码里判断条件是\n还敢带空格???{:10_256:} qiuyouzhi 发表于 2020-8-26 22:19
我这里用Dev-C++,没有这个问题
不同编译器有差异很正常,我用vs习惯了,感谢分享 ok了,谢谢大佬们{:10_257:} 问题解决的话就结贴吧
页:
[1]