C 如果字符串等于另一个字符串,则打印一些内容
出于某种原因,这段代码没有输出任何东西,我做错了什么C 如果字符串等于另一个字符串,则打印一些内容,c,C,出于某种原因,这段代码没有输出任何东西,我做错了什么 #include<stdio.h> int main() { char c; scanf("%s",&c); if(c=="ab") { printf("b"); } } #包括 int main() { 字符c; scanf(“%s”、&c); 如果(c==“ab”) { printf(“b”); } }
#include<stdio.h>
int main()
{
char c;
scanf("%s",&c);
if(c=="ab")
{
printf("b");
}
}
#包括
int main()
{
字符c;
scanf(“%s”、&c);
如果(c==“ab”)
{
printf(“b”);
}
}
C字符串中的不是您声明的字符类型(即字符C;
)。它是指向字符的指针。您需要逐个字符检查是否相等,或者使用标准库函数
#包括
#包括
内部主(空)
{
charc[100];
scanf(“%s”,c);
char*s=“ab”;
if(strcmp(c,s)==0)
{
printf(“它们相等”);
}
}
因为这不是在c中比较字符串的方式。字符串与strcmp
函数进行比较。另外,c
不是字符串。您应该为字符串分配内存,或者使用char str[64]
或使用malloc()
时,strcmp()
在相等时返回0,如果(strcmp(c,“ab”)==0,那将是谢谢,从Python到c的转换肯定是一个挑战,lolAnd稍后,当OP更熟悉时,也许他会转换到fgets()
:)您正在读取一个未初始化的指针。@现在它应该是正确的,尽管还远远不够完美
#include <stdio.h>
#include <string.h>
int main(void)
{
char c[100];
scanf("%s", c);
char *s = "ab";
if (strcmp(c, s) == 0)
{
printf("They are Equal\n");
}
}