检查旧c语言中的字符是否为大写

时间:2014-12-12 00:28:02

标签: c++ string c-strings

我正在一个需要密码身份验证的实验室工作,既可以使用较旧的c-string,也可以使用字符串类。我有字符串类版本工作。我使用cin.getline(password, 20)

将密码输入为数组

strlen(password)也可以正常使用。

我一直在寻找如何判断旧的c-string版本是否包含任何值的大写字母。一切都在说使用isupper,它来自较新的字符串类(据我所知)。

有办法做到这一点吗?我考虑只使用字符串类版本进行验证,然后将其输入到char数组中。

3 个答案:

答案 0 :(得分:4)

C标准库中有一个名为isupper的函数,它将一个字符作为参数。 (角色来自哪里,C字符串或其他地方并不重要。)这可能就是您要使用的内容。

答案 1 :(得分:3)

C标准库中还有一个isupper()函数 - <ctype>

它需要一个char参数,所以你需要迭代字符数组并为每个字符调用它。

有一些关于它的好信息here

答案 2 :(得分:1)

由于您知道C使用ASCII,因此您可以创建自己的函数:

bool upper(char chr)
{
    return chr >= 'A' && chr <= 'Z'; // same as return chr >= 65 && chr <= 90
}
相关问题