-8

当我运行和编译代码时,我得到 A 和 Z 以及 a 和 c 都未定义的错误,我该如何解决这个问题?

char toUpper ( char c ) {

    if ( C >= a + c <= z) 
        -32;
    return c;

} // ends toUpper

char toLower ( char c ) {

    if ( c >= A + c <= Z ) 
        +32;

} // ends toUpper
4

3 回答 3

3

用单引号引用字母以形成字符文字,如下所示:

'a'
于 2013-03-05T23:17:10.747 回答
1

一个简短的总结:

  • 您需要在字符常量周围加上引号。
  • 您的函数应返回大小写字符。
  • 测试两个条件时,使用&&“逻辑与”和||“逻辑或”

如果两边都为真,则逻辑 and 为&&真。如果 ONE 的一侧为真,则逻辑或为||真。

我不是“编辑你的代码来修复它”,因为我很确定你是学习如何编写 C 的人,如果我只是在这里输入“正确的代码”,你只需将其复制并粘贴到你的代码,并且什么都学不到。

于 2013-03-05T23:21:25.647 回答
1

您的代码中有两个主要问题。

第一个是您正在使用a而不是'a'. 当编译器看到a它尝试将其解释为标识符时。这意味着它应该引用一个参数、本地、函数名等......你的代码的意图是让它表示字符 a(字母表的第一个字母)。将单引号放在单个字母周围会导致编译器将其解释为字符文字。

第二个问题是您的条件语句不正确。您正在尝试查看Cis 是否同时大于或等于'a'和小于或等于'z'。这种类型的布尔比较是用&&C 中的运算符完成的。只有当左侧和右侧都为真时才为&&

if ( C >= 'a' && c <= 'z') 
于 2013-03-05T23:22:29.213 回答