【问题标题】:Checking whether chars are uppercase or lowercase in c++在 C++ 中检查字符是大写还是小写
【发布时间】:2018-06-17 15:45:43
【问题描述】:

我是 C++ 的初学者,但我一开始就被卡住了。

问题很简单:一个字母是输入,输出应该是“它是大写的”或“它是小写的”,或者当它不是一个字母时简单地是“错误”。

这就是我卡住的地方。

#include <iostream>
#include <cstdlib>
using namespace std;


int main(){
char t;
cin>>t;
if (t==toupper(t))cout<<"UPPER";
else if(t==tolower(t))cout<<"LOWER";
else cout<<"ERROR";
return 0;

}

这是我的代码。我以前从未使用过字符。似乎程序无法知道它是文本还是数字/特殊符号。如何让它告诉我字母是大写、小写还是错误?

【问题讨论】:

  • 您只处理 ASCII 码吗?见::isupper()::islower()
  • 请显示示例输入、您的期望以及您得到的。
  • if (t==toupper(t)) -- 您正在使用的书、参考资料或教程 -- 是否表明这是使用 toupper 的方式,或者即使 toupper 是正确的函数判断一个字母是否大写?
  • 问题很简单:一个字母是输入,输出应该是“它是大写的” - 这只是英语的简单,而不是(通常)其他语言,并且当您必须同时处理多种语言时,这尤其不容易。
  • @FredLarson -- isupper()islower 适用于系统使用的任何字符编码,前提是字符值适合 char; ASCII 是其中之一,但不是唯一的。这些函数依赖于 ASCII 编码。

标签: c++ uppercase lowercase chars


【解决方案1】:
int main(){
     char t;
     cin>>t;
     if (t>='A' && t<='Z') cout<<"UPPER";
     else if(t>='a' && t<='z') cout<<"LOWER";
     else cout<<"ERROR";
     return 0;
     }

即使 char 不是字符,toUpper() 也会将其返回为 as,这就是您的代码无法正常工作的原因。

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 2012-01-03
    • 2014-02-12
    • 2020-10-21
    • 2011-09-15
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多