【发布时间】:2021-06-21 00:32:59
【问题描述】:
以下代码有两个scanf 调用,但是当我运行它时,它要求三个输入。我假设问题来自\n,但为什么呢?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *s,*t;
s=malloc(1024);t=malloc(1024);
scanf("%s\n",s);
scanf("%s\n",s);
if(s==t)
{
printf("Same!\n");
}
else
{
printf("Different\n");
}
}
【问题讨论】:
-
"它要求 3 个输入?"欠
"\n"。scanf("%s\n",s);-->scanf("%s",s);。更好的是,研究和使用fgets()。 -
它从哪里获得 3 个输入? BW 字符串比较需要
strcmp -
s==t比较指针地址。不会一样的。 -
哦,你是对的,没注意到,我只是在学习cs50练习课程