在用户定义函数的if()语句中使用strcmp不会返回预期的输出

杨柳·海恩(Willow Hearne)

我正在做一个家庭作业,重点是C类入门课程的弦乐。我在用户定义函数的if语句中使用strcmp()函数时遇到麻烦。

该分配要求我们使用用户定义的函数(我的对象为Check())来检查两个字符串是否相同(将用户输入的字符串与文件中的字符串进行比较)。出于某种原因,我的教授希望Check()如果字符串匹配则返回1,如果字符串不匹配则返回2,即使据我所知strcmp()已经在字符串匹配时返回0,如果字符串匹配则返回其他值别。

一旦我的Check()函数返回一个值(x = 1表示匹配,x = 2表示不匹配),我将在我的主函数中通过另一个if语句运行该x值,该语句应为x = 1打印“您正确”,对于x = 2,则为“您不正确”。

我遇到的问题是,无论字符串是否匹配,我在main函数中的条件总是告诉用户它们是正确的,即字符串匹配。我认为问题出在我的Check()函数和我对strcmp()的使用之内,因为我并不完全了解strcmp()的工作方式。

我已经尝试在Check()中修改我的条件,以便在if(strcmp(solution,guess)== 0)之后是else if(strcmp(solution,guess !! = 0)),但这并不能解决我的问题。

我的用户定义函数:

int Check(char solution[], char guess[])
{
   if (strcmp(solution, guess) == 0)
   {
      int x = 1;
      return x;
   }
   else
   {
      int x = 2;
      return x;
   }
}

这馈入我的主要职能是:

Check(solution, guess);

if (x == 1)
{
   printf("Congratulations, you guessed correctly");
}
else if (x == 2)
{
   printf("You guessed incorrectly");
}

当解决方案=“ FLORIDA”和猜测=“ FORLIDA”时,应打印“您猜错了”,但改为“恭喜您猜错了”。

来自莫斯科的弗拉德

您没有将返回值分配给任何变量。

x = Check(solution, guess);

在if语句之前。

if (x == 1)
{
   printf("Congratulations, you guessed correctly");
}
else if (x == 2)
{
   printf("You guessed incorrectly");
}

实际上,else if您只能else因为仅有两种可能性写,而不必

因此x,如果没有该变量,则if语句可能会像

if ( Check(solution, guess) == 1 )
{
   printf("Congratulations, you guessed correctly");
}
else
{
   printf("You guessed incorrectly");
}

考虑到该函数可以更简单地定义

int Check( const char solution[], const char guess[] )
{
    return strcmp( solution, guess ) == 0 ? 1 : 2;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在用户定义函数中使用标志

来自分类Dev

如何在用户定义的函数中使用LAG()?

来自分类Dev

无法在where子句中使用用户定义的函数返回值

来自分类Dev

在SELECT语句中使用自定义函数时,为什么我的SQL查询的输出显示不正确?

来自分类Dev

如何在if语句中使用strcmp进行比较

来自分类Dev

在 if 语句中使用 array.includes 时出现函数预期错误

来自分类Dev

在JavaScript IF语句中使用匿名函数

来自分类Dev

在UPDATE语句中使用LAG函数

来自分类Dev

熊猫在用户定义的函数中使用Numpy向量化,而不是使用loops / lambda.apply()

来自分类Dev

在用户定义的函数中使用 &body Lambda List 关键字

来自分类Dev

在select语句中使用表值函数返回值

来自分类Dev

Oracle是否关闭从SELECT语句中使用的函数返回的SYS_REFCURSOR?

来自分类Dev

在我的语句中使用布尔函数时返回始终为假

来自分类Dev

在select语句中使用表值函数返回值

来自分类Dev

在WHERE子句中使用UCase函数的MS Access查询不会返回null

来自分类Dev

在WHERE子句中使用UUID参数时,PostgreSQL函数不会返回任何内容

来自分类Dev

使用函数作为函数参数以在with语句中使用

来自分类Dev

在IF语句中使用SET / P时不会设置变量

来自分类Dev

在if语句中使用mysql命令的输出和退出代码

来自分类Dev

在if语句中使用python表达式的输出

来自分类Dev

如何在 VBA if 语句中使用 And 函数和 Not 函数

来自分类Dev

在用户窗体中定义要在模块中使用的变量

来自分类Dev

在用户定义类型(UDT)列表中使用“包含”查询

来自分类Dev

从when语句中的函数返回

来自分类Dev

C ++在return语句中使用&&返回布尔-需要澄清

来自分类Dev

在 DEF() 语句中使用 if 在 python 中返回错误值

来自分类Dev

在 postgresql 的 with 语句中使用从插入返回的 id

来自分类Dev

在返回语句中使用“foobar 或 die” - 意外结果

来自分类Dev

在定义预处理程序语句中使用括号

Related 相关文章

  1. 1

    在用户定义函数中使用标志

  2. 2

    如何在用户定义的函数中使用LAG()?

  3. 3

    无法在where子句中使用用户定义的函数返回值

  4. 4

    在SELECT语句中使用自定义函数时,为什么我的SQL查询的输出显示不正确?

  5. 5

    如何在if语句中使用strcmp进行比较

  6. 6

    在 if 语句中使用 array.includes 时出现函数预期错误

  7. 7

    在JavaScript IF语句中使用匿名函数

  8. 8

    在UPDATE语句中使用LAG函数

  9. 9

    熊猫在用户定义的函数中使用Numpy向量化,而不是使用loops / lambda.apply()

  10. 10

    在用户定义的函数中使用 &body Lambda List 关键字

  11. 11

    在select语句中使用表值函数返回值

  12. 12

    Oracle是否关闭从SELECT语句中使用的函数返回的SYS_REFCURSOR?

  13. 13

    在我的语句中使用布尔函数时返回始终为假

  14. 14

    在select语句中使用表值函数返回值

  15. 15

    在WHERE子句中使用UCase函数的MS Access查询不会返回null

  16. 16

    在WHERE子句中使用UUID参数时,PostgreSQL函数不会返回任何内容

  17. 17

    使用函数作为函数参数以在with语句中使用

  18. 18

    在IF语句中使用SET / P时不会设置变量

  19. 19

    在if语句中使用mysql命令的输出和退出代码

  20. 20

    在if语句中使用python表达式的输出

  21. 21

    如何在 VBA if 语句中使用 And 函数和 Not 函数

  22. 22

    在用户窗体中定义要在模块中使用的变量

  23. 23

    在用户定义类型(UDT)列表中使用“包含”查询

  24. 24

    从when语句中的函数返回

  25. 25

    C ++在return语句中使用&&返回布尔-需要澄清

  26. 26

    在 DEF() 语句中使用 if 在 python 中返回错误值

  27. 27

    在 postgresql 的 with 语句中使用从插入返回的 id

  28. 28

    在返回语句中使用“foobar 或 die” - 意外结果

  29. 29

    在定义预处理程序语句中使用括号

热门标签

归档