繁体   English   中英

Function 不返回 printf

[英]Function does not return printf

当我运行这个程序时,它会打印问题并从用户那里得到答案,但它并没有说明它是正确的还是错误的。 请帮忙!

#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>

void
correct (char str[])
{
    char c1 = "Cristoforo";
    char c2 = "cristoforo";
    char c3 = "CRISTOFORO";
    int conf = strcmp (str, c1);
    int conf1 = strcmp (str, c2);
    int conf2 = strcmp (str, c3);
    if (conf1 == 0 || conf == 0 || conf2 == 0)
    {
        printf ("The answer is correct");
    }
    else
    {
        printf ("The answer is wrong");
    }
}

int
main ()
{
  char s[] = "What's the name of the explorere Colombus?\n";
  char r[100];
  printf ("%s", s);
  gets (r);
  void correct (r);
}

void correct(r)是声明,它意味着 - 正确的是 function,它在 arguments 中采用 r 类型并返回 void。 只需删除void即可调用 function。 correct(r) 您需要将char更改为char *const char*

    const char *c1 = "Cristoforo";
    const char *c2 = "cristoforo";
    const char *c3 = "CRISTOFORO";

由于不正确使用strcmp() ,您会遇到seg错误。 第二个参数必须是const char *__s2 所以正确的是:

int conf = strcmp(str, "Cristoforo");
int conf1 = strcmp(str, "cristoforo");
int conf2 = strcmp(str, "CRISTOFORO");

并在调用correct(r)时删除void

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM