Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言关于带prinf函数的输入输出我准确键入是,但为什么可以';我看不到输出吗? #包括 内部主(空) { 字符名[40]; scanf(“%s”,名称); 如果(名称=“是”) { printf(“%s”,名称); } 返回0 }_C - Fatal编程技术网

C语言关于带prinf函数的输入输出我准确键入是,但为什么可以';我看不到输出吗? #包括 内部主(空) { 字符名[40]; scanf(“%s”,名称); 如果(名称=“是”) { printf(“%s”,名称); } 返回0 }

C语言关于带prinf函数的输入输出我准确键入是,但为什么可以';我看不到输出吗? #包括 内部主(空) { 字符名[40]; scanf(“%s”,名称); 如果(名称=“是”) { printf(“%s”,名称); } 返回0 },c,C,您需要使用strcmp进行字符串比较 替换 #include<stdio.h> int main(void) { char name[40]; scanf("%s",name); if(name == "yes") { printf("%s",name); } return 0 } 与 strcmp返回 如果两个字符串相同(相等),则为0 如果第一个不匹配字符的ASCII值小于第二个字符,则为

您需要使用
strcmp
进行字符串比较

替换

#include<stdio.h>

int main(void)
{

    char name[40];      
    scanf("%s",name);

   if(name == "yes")    
   {
       printf("%s",name);
   }

   return 0
}


strcmp
返回

  • 如果两个字符串相同(相等),则为0

  • 如果第一个不匹配字符的ASCII值小于第二个字符,则为负值

  • 如果 第一个不匹配字符的ASCII值大于第二个字符


  • =
    未定义用于字符串(或任何其他数组)比较-您需要使用标准库函数
    strcmp
    来比较字符串:

    if(strcmp(name,"yes") == 0)
    

    strcmp
    有点不直观,因为如果字符串内容相等,它将返回0,因此测试的感觉将是错误的。如果第一个字符串按字典顺序小于第二个字符串,则返回负值;如果第一个字符串按字典顺序大于第二个字符串,则返回正值

    您需要
    #包括
    ,才能使用
    strcmp


    要比较非字符串的数组,请使用
    memcmp

    搜索字符串比较问题,你是在比较指针,而不是字符串。非常感谢。我能问一下为什么(name==“yes”)不可用吗?非常感谢,我能问一下为什么(name==“yes”)不可用吗?@richbak:这与C如何处理数组表达式有关-在大多数情况下,数组类型的表达式“衰减”为指针,因此,最后比较的是字符串的地址,而不是它们的内容。这种行为是有原因的,但它超出了评论的范围。
    if(strcmp(name,"yes") == 0)
    
    if ( strcmp( name, "yes" ) == 0 )
    
    if ( !strcmp( name, "yes") )