Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.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
程序未正确注册我的输入 #包括 #包括 #包括 #包括 #包括 #包括 //功能原型 无效检查答案(字符*,字符[]); 内部主(空){ char*strGame[5]={“ADELANGUAGEFERVZOPIBMOU”,“ZbPointerskllmloopmnocot”, “PodstringDiwihieekerls”、“YVCProgrammerwQknuthmd”, “UKUNIXFIMWXIZEQZINPUTEX”}; 字符应答[80]={0}; 显示的int=0; int x; int startTime=0; 系统(“清除”); printf(“\n\n\tWord Find\n\n”); 开始时间=时间(空); 对于(x=0;x时间(空)){ 如果(显示==0){ printf(“\n在:\n\n”中查找单词); printf(“%s\n\n”,strGame[x]); 显示=1; } } 系统(“清除”); printf(“\n找到输入字:”); fgets(答案80,标准DIN); 检查应答(strGame[x],应答); 显示=0; 开始时间=时间(空); } } 无效检查应答(字符*string1,字符string2[]{ int x; 对于(x=0;x_C - Fatal编程技术网

程序未正确注册我的输入 #包括 #包括 #包括 #包括 #包括 #包括 //功能原型 无效检查答案(字符*,字符[]); 内部主(空){ char*strGame[5]={“ADELANGUAGEFERVZOPIBMOU”,“ZbPointerskllmloopmnocot”, “PodstringDiwihieekerls”、“YVCProgrammerwQknuthmd”, “UKUNIXFIMWXIZEQZINPUTEX”}; 字符应答[80]={0}; 显示的int=0; int x; int startTime=0; 系统(“清除”); printf(“\n\n\tWord Find\n\n”); 开始时间=时间(空); 对于(x=0;x时间(空)){ 如果(显示==0){ printf(“\n在:\n\n”中查找单词); printf(“%s\n\n”,strGame[x]); 显示=1; } } 系统(“清除”); printf(“\n找到输入字:”); fgets(答案80,标准DIN); 检查应答(strGame[x],应答); 显示=0; 开始时间=时间(空); } } 无效检查应答(字符*string1,字符string2[]{ int x; 对于(x=0;x

程序未正确注册我的输入 #包括 #包括 #包括 #包括 #包括 #包括 //功能原型 无效检查答案(字符*,字符[]); 内部主(空){ char*strGame[5]={“ADELANGUAGEFERVZOPIBMOU”,“ZbPointerskllmloopmnocot”, “PodstringDiwihieekerls”、“YVCProgrammerwQknuthmd”, “UKUNIXFIMWXIZEQZINPUTEX”}; 字符应答[80]={0}; 显示的int=0; int x; int startTime=0; 系统(“清除”); printf(“\n\n\tWord Find\n\n”); 开始时间=时间(空); 对于(x=0;x时间(空)){ 如果(显示==0){ printf(“\n在:\n\n”中查找单词); printf(“%s\n\n”,strGame[x]); 显示=1; } } 系统(“清除”); printf(“\n找到输入字:”); fgets(答案80,标准DIN); 检查应答(strGame[x],应答); 显示=0; 开始时间=时间(空); } } 无效检查应答(字符*string1,字符string2[]{ int x; 对于(x=0;x,c,C,您可以避免BLUEPIXY提到的\n(换行符)问题,即get()删除它,但fgets()不删除它,方法是在调用checkAnswer()时颠倒术语: checkAnswer()然后使用与strstr()相同的顺序。如果在“foobar\n”中搜索“foobar”,strstr()将返回指针。但如果在“foobar”中搜索“foobar\n”,则不会返回指针 换行符之所以存在是因为用户点击Enter键。因此,另一种解决方法是在所有strGame[]字符串的末尾添加一个\n。或者,您可以使用以下命令

您可以避免BLUEPIXY提到的
\n
(换行符)问题,即
get()
删除它,但
fgets()
不删除它,方法是在调用
checkAnswer()
时颠倒术语:

checkAnswer()
然后使用与
strstr()
相同的顺序。如果在“foobar\n”中搜索“foobar”,
strstr()
将返回指针。但如果在“foobar”中搜索“foobar\n”,则不会返回指针

换行符之所以存在是因为用户点击Enter键。因此,另一种解决方法是在所有
strGame[]
字符串的末尾添加一个
\n
。或者,您可以使用以下命令删除答案中的任何换行符:

checkAnswer(answer, strGame[x]);

问题是
fgets()
将在字符串末尾保留换行符。键入单词时,按Enter键,然后
fgets()
将其解释为输入

因此,绕过这一点的一种方法是通过这样做来接受新行:

void truncateAtNewline (char *str) {
    char *p = strchr(str, '\n');
    if (p) *p = '\0';
}
这里也有:

fgets(answer, 80, stdin);
// go to the last position where the
// newline is placed and replace it
// with the null terminator
answer[strlen(answer)-1] = '\0';
修复后的输出:

|ADELANGUAGEFERVZOPIBMOU|
|ADEL
|
或者你可以用一个函数来修剪换行和空格。我有一些方法

再考虑一下


此外,始终在main()结束之前添加
返回0;
代码行。

在fgets中输入的字符串中位于最后一个换行符('\n')不考虑。您必须删除该换行符。关于该行:对于(x=0;x),您需要删除新行字符根据其他人的建议,从用户字符串的末尾开始。关于行:if(strestr(string1,string2)!=0),strstr返回指针或NULL,而不是0,因此该行应为:if(strestr(string1,string2)!=NULL)“\n”需要替换为“\0”,以便读取字符串仍然正确终止。在用空字符替换换行符后获取strlen值。是的,因为不考虑输入缓冲区的大小。较大的缓冲区可能会使程序崩溃或产生未定义的行为。@black_perl我不建议使用
gets()
。OP使用
fgets()是正确的
相反,这会在换行符上产生一个小问题,必须加以考虑和处理。没问题。如果您认为您的问题有答案,请勾选答案顶部的大复选标记以表明这一点。
 for (x = 0; x <= strlen(string2); x++)
    string2[x] = toupper(string2[x]);
 for (x = 0; x < strlen(string2); x++)
    string2[x] = toupper(string2[x]);
void checkAnswer(char *string1, char string2[]) {
  int x;

  for (x = 0; x < strlen(string2); x++)
    string2[x] = toupper(string2[x]);
  printf("|%s|\n", string1);
  printf("|%s|\n", string2);
  if (strstr(string1, string2) != 0)
    printf("\nGreat job!\n");
  else
    printf("\nSorry, word not found!\n");

}
|ADELANGUAGEFERVZOPIBMOU|
|ADEL
|
|ADELANGUAGEFERVZOPIBMOU|
|ADEL|