【问题标题】:tolower() Function not Working in C99tolower() 函数在 C99 中不起作用
【发布时间】:2012-09-27 03:11:53
【问题描述】:

我正在使用哈佛的 CS50 设备并尝试将字符设置为小写。我正在尝试使用 tolower() 函数,但是当我尝试使用它时,我收到消息 implicit declaration of function 'tolower' is invalid in C99。任何人都想详细说明我为什么会收到此消息。我包括了stdio.hstring.h

【问题讨论】:

  • 您没有包含标题,并且在 C99 中,函数不被假定为有效,如果没有定义则返回一个 int。

标签: c cs50 tolower


【解决方案1】:

要在 C99 中使用 tolower,请使用 #include <ctype.h>

它不是 I/O 函数,它不对字符串进行操作(它对字符进行操作),所以它不在 stdiostring 中。

【讨论】:

  • 嗯,这已经纠正了调用未识别函数的问题,但现在当我尝试只说 character[0]="A"; 时,我遇到了麻烦。有任何想法吗?说了一些关于指针和整数的事情。作为参考,我声明了char character[2];
  • character[0] = 'A' 应该可以工作。通过执行 character[0] = "A",您试图将字符串分配给一个字符,这是不允许的。
  • @ChapmIndustries "A" 是 const char *,因此赋值与指针类型 const char * 不对齐,赋值给整数类型 char
【解决方案2】:

tolowerctype.h 中定义。那是您应该包含的文件:

#include <ctype.h>

会解决你的问题。

【讨论】:

    【解决方案3】:

    它是在ctype.h 中定义的,而不是在您提到的那些标题中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 2020-12-24
      相关资源
      最近更新 更多