当我运行和编译代码时,我得到 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
用单引号引用字母以形成字符文字,如下所示:
'a'
一个简短的总结:
&&
“逻辑与”和||
“逻辑或”如果两边都为真,则逻辑 and 为&&
真。如果 ONE 的一侧为真,则逻辑或为||
真。
我不是“编辑你的代码来修复它”,因为我很确定你是学习如何编写 C 的人,如果我只是在这里输入“正确的代码”,你只需将其复制并粘贴到你的代码,并且什么都学不到。
您的代码中有两个主要问题。
第一个是您正在使用a
而不是'a'
. 当编译器看到a
它尝试将其解释为标识符时。这意味着它应该引用一个参数、本地、函数名等......你的代码的意图是让它表示字符 a(字母表的第一个字母)。将单引号放在单个字母周围会导致编译器将其解释为字符文字。
第二个问题是您的条件语句不正确。您正在尝试查看C
is 是否同时大于或等于'a'
和小于或等于'z'
。这种类型的布尔比较是用&&
C 中的运算符完成的。只有当左侧和右侧都为真时才为&&
真
if ( C >= 'a' && c <= 'z')