C - 编译没有错误但功能不起作用

时间:2015-11-29 00:42:48

标签: c

您好我正在尝试编写一个函数来处理用户的输入,以允许他们输入" y","是的","确定",&# 34;绝对"等等回答"是或否"题。这是我的代码的一部分,编译没有错误但不起作用。

void distinguish_string(char s[])
{
  if (s[0] == 'y')
      s = "yes";
  else if (s[0] == 'n')
      s = "no";
  else 
      printf("Please eneter a valid answer. Like 'yes' or 'no', 'y' or 'n'.\n> ");
}

void play(Node **currentNode)
{
    char answerOfQuestion[60];
    ........
    fgets(answerOfQuestion, 60, stdin);
    strtok(answerOfQuestion, "\n");
    distinguish_string(answerOfQuestion);
    .......
}

因为我以后需要使用

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

所以我的功能必须返回"是"而不是像1或0那样的int。

有什么方法可以解决这个问题? 请帮忙

1 个答案:

答案 0 :(得分:0)

您必须将规范字符串复制到数组中(而不是仅修改函数中指向的本地指针):

patient

但是,请注意,主叫代码无法知道给出的答案是“确定”'或者绝对'并做任何事情,因为它没有返回状态或任何东西。

这是一个不寻常的界面;大多数情况下,你不会覆盖这样的输入参数。但是,给出或采取错误检测,这没有错。