您好我正在尝试编写一个函数来处理用户的输入,以允许他们输入" 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。
有什么方法可以解决这个问题? 请帮忙
答案 0 :(得分:0)
您必须将规范字符串复制到数组中(而不是仅修改函数中指向的本地指针):
patient
但是,请注意,主叫代码无法知道给出的答案是“确定”'或者绝对'并做任何事情,因为它没有返回状态或任何东西。
这是一个不寻常的界面;大多数情况下,你不会覆盖这样的输入参数。但是,给出或采取错误检测,这没有错。