C 我并没有给出任何指针,但编译器说指针和整数之间的比较?
我不断地收到这个警告。 我正在分享我的代码,请查看并告诉我指针在哪里C 我并没有给出任何指针,但编译器说指针和整数之间的比较?,c,pointers,compiler-warnings,C,Pointers,Compiler Warnings,我不断地收到这个警告。 我正在分享我的代码,请查看并告诉我指针在哪里 #include<stdio.h> int main() { int ageofUser, age; char damru[100], professionUser[20], name[20]; printf("Hello I am Damroo , your personal chatbot.\n But I can answer limited questions because I
#include<stdio.h>
int main() {
int ageofUser, age;
char damru[100], professionUser[20], name[20];
printf("Hello I am Damroo , your personal chatbot.\n But I can answer limited questions because I am in developing phase.\n so lets chat.\n So , What is your name ?\n");
scanf("%s", &damru);
printf("Ohkay, what is your age ?");
scanf("%d", &ageofUser);
printf("Ohkay , Mr. %d , What do you work ?", &ageofUser);
scanf("%s", &professionUser);
printf("Why don't you talk bidirectionally ?");
if (scanf("%s", &name) == "What is your name ?");
printf("I am damroo.");
if (scanf("%d", &age) == "what is your age ?");
printf("I was born on 17/02/2021");
return 0;
}
#包括
int main(){
用户年龄;
char damru[100],professionUser[20],name[20];
printf(“您好,我是Damroo,您的个人聊天机器人。\n但我可以回答有限的问题,因为我正处于开发阶段。\n所以让我们聊天吧。\n那么,您叫什么名字?\n”);
scanf(“%s”和damru);
printf(“哦,你多大了?”);
scanf(“%d”&用户年龄);
printf(“Ohkay,%d先生,你从事什么工作?”,&ageofUser);
scanf(“%s”、&professionUser);
printf(“你为什么不双向交谈?”);
如果(scanf(“%s”,&name)=“你叫什么名字?”);
printf(“我是damroo”);
如果(scanf(“%d”,&age)=“您的年龄是多少?”);
printf(“我出生于2021年2月17日”);
返回0;
}
我只想知道指针在哪里。我找不到了。scanf(3)的
返回值
成功时,这些函数返回成功匹配的输入项目数
分配,;这可能比提供的要少
如果早期匹配失败,则为,甚至为零
因此,不能将scanf()
与字符串进行比较。您需要使用strcmp():
请注意,您可以直接比较字符串常量
要扫描字符数组,请不要在scanf()
中引入符号和符号:
类似地,您永远不需要在
printf()
中输入一个与。要进行防御性编码,请始终检查scanf()
,fgets()
等的返回值。这里您尝试使用指针printf(“Ohkay,先生%d,您在做什么?”,&ageofUser)
而不是整数,请删除&
。此外,您使用的scanf
也是错误的。阅读scanf
的文档,找出返回值。但是无论如何,如果你在这里没有效果,因为如果
以开头的行的末尾,编译器应该告诉您错误在哪里。然后您可以识别所涉及的操作数。例如,“您的年龄是多少?”
用作指针)详细信息:因此,如果您的用户的年龄是21岁,您可以称呼他为“21岁先生”?这里的问题的根源是:您不能通过尝试语法或试错来进行编程。您必须真正理解您键入的每一行都是做什么的,以及C实际上是如何工作的。否则,您将不断得到非常奇怪的错误和bug,您不知道它们来自何方。
char *str = "hello";
char *str_comp = "ello";
if (strcmp(str, str_comp) == 0) {
// both are equal
} else {
// otherwise, not
}
scanf("%s", professionUser); // removed &