python牛逼 发表于 2018-11-20 00:10:27

请问为什么运行之后会是这样?

本帖最后由 python牛逼 于 2018-11-20 00:22 编辑

RT




为什么输入“吔屎啦梁非凡“后,不是输出“你......”呢?



代码如下:
#include <stdio.h>
#include <string.h>
void main()
{
        char str;
        printf("即刻同我落操场跑20圈,大声讲:对唔住,非凡哥!我听唔到再讲,讲到我听到为止!\n");
        scanf("%s", str);
        if ( strcmp(str,"吔屎啦梁非凡\n")==0)
                printf("你......\n");
   
        else
                printf("我听唔到,再讲!\n");
}

python牛逼 发表于 2018-11-20 00:20:48

不好意思,这里修改一下,我有一些错误

这个才是,但为什么直接输出的是else里的呢?

仰望天上的光 发表于 2018-11-20 09:29:05

if ( strcmp(str,"吔屎啦梁非凡\n")==0)
改为
if ( strcmp(str,"吔屎啦梁非凡")==0)
因为你的str是scanf输入的,无法包含字符'\n'

python牛逼 发表于 2018-11-20 09:39:34

仰望天上的光 发表于 2018-11-20 09:29
if ( strcmp(str,"吔屎啦梁非凡\n")==0)
改为
if ( strcmp(str,"吔屎啦梁非凡")==0)


哦哦哦好的,学到新知识了,谢谢!

python牛逼 发表于 2018-11-20 11:55:34

仰望天上的光 发表于 2018-11-20 09:29
if ( strcmp(str,"吔屎啦梁非凡\n")==0)
改为
if ( strcmp(str,"吔屎啦梁非凡")==0)


对了,还想请教一下,就是运行之后:如果是else的话怎样继续循环直到输入‘’吔屎啦梁非凡‘’为止?

仰望天上的光 发表于 2018-11-21 20:59:12

while( scanf("%d", str) && strcmp( str,"xxxxxx" ) ) {
printf("error\n");
}
printf("ok\n");
页: [1]
查看完整版本: 请问为什么运行之后会是这样?