isalpha/isdigit

isalpha

isalpha 函数是 C/C++ 标准库中用于检查给定字符是否为字母的函数。在 C++ 中,isalpha 函数定义在 <cctype> 头文件中。这个函数检查一个字符是否是字母(a-zA-Z),如果是字母则返回非零值(真),如果不是字母则返回零(假)。

基本用法

#include <cctype> // 或 #include <ctype.h> for C
int isalpha(int ch);
  • 参数 ch:需要检查的字符。虽然参数是 int 类型,但通常传递的是一个字符。
  • 返回值:如果 ch 是字母(无论大写还是小写),函数返回非零值(真)。如果 ch 不是字母,函数返回零(假)。

示例

检查字符是否为字母

#include <iostream>
#include <cctype>

int main() {
    char ch1 = 'a';
    char ch2 = '1';

    if (isalpha(ch1)) {
        std::cout << ch1 << " is an alphabet." << std::endl;
    } else {
        std::cout << ch1 << " is not an alphabet." << std::endl;
    }

    if (isalpha(ch2)) {
        std::cout << ch2 << " is an alphabet." << std::endl;
    } else {
        std::cout << ch2 << " is not an alphabet." << std::endl;
    }

    return 0;
}

输出将会是:

a is an alphabet.
1 is not an alphabet.

注意事项

  • isalpha 函数的行为对于非ASCII字符是未定义的。如果你需要处理非ASCII字符(如 UTF-8 编码的字符),考虑使用其他库或方法。
  • 在某些情况下,isalpha 函数的结果可能依赖于当前的locale设置(特别是对于扩展字符集)。如果需要,可以使用 std::isalpha,它接受一个额外的 locale 参数。
  • 由于 isalpha 可以返回任意非零值以表示真,因此在使用这个函数时应该检查返回值是否非零,而不是假定它返回特定的非零值。

isalpha 是一个简单而强大的函数,适用于检查字符是否为字母,可以帮助你实现字符串处理、解析文本等任务中的字符类型检查。

isdigit

isdigit 函数是 C/C++ 标准库中用于检查给定字符是否为十进制数字字符的函数。在 C++ 中,isdigit 函数定义在 <cctype> 头文件中(C 语言中则是 <ctype.h>)。这个函数检查一个字符是否是十进制数字(0-9),如果是,则返回非零值(真),如果不是,则返回零(假)。

基本用法

#include <cctype> // 或 #include <ctype.h> for C

int isdigit(int ch);
  • 参数 ch:需要检查的字符。尽管参数是 int 类型,但通常传递的是一个字符。
  • 返回值:如果 ch 是十进制数字字符,则函数返回非零值(真)。如果 ch 不是十进制数字字符,函数返回零(假)。

示例

检查字符是否为数字

#include <iostream>
#include <cctype>

int main() {
    char ch1 = '3';
    char ch2 = 'a';

    if (isdigit(ch1)) {
        std::cout << ch1 << " is a digit." << std::endl;
    } else {
        std::cout << ch1 << " is not a digit." << std::endl;
    }

    if (isdigit(ch2)) {
        std::cout << ch2 << " is a digit." << std::endl;
    } else {
        std::cout << ch2 << " is not a digit." << std::endl;
    }

    return 0;
}

输出将会是:

3 is a digit.
a is not a digit.

注意事项

  • 类似于 isalphaisdigit 函数的行为对于非ASCII字符也是未定义的。如果需要处理非ASCII数字字符(例如,全角数字等),你可能需要寻找其他方法或库。
  • isdigit 的结果可能依赖于当前的 locale 设置,尽管对于基本的 ASCII 数字 0-9,这通常不是问题。如果需要,可以使用 std::isdigit,它接受一个额外的 locale 参数来适应特定的本地环境。
  • 在判断函数返回值时,只需要检查它是否为非零值即可,不应假设它返回特定的非零值。

isdigit 函数是进行字符类型检查的简单而有用的工具,特别适用于解析数字、处理用户输入等场景,可以帮助确保处理的字符符合期望的数字格式。


⬅️ alpha-digit 全排列 🏠 00-刷题理模型 ➡️ next_permutation