c++中字符/串->整数

char字符->整数数字:std::isdigit 用于判断某个字符是否为数字(0-9)。
字符串->数字:std::stoi 用于将字符转换为整数。

int isdigit( int ch );
//std::isdigit 接受的参数类型为 int,通常会传递字符类型(char)作为参数,但是字符会自动转换为对应的 int 值。
int stoi(const std::string& str, std::size_t* pos = 0, int base = 10);

isdigit

参数:

  • ch:一个整数类型的参数,通常是一个字符,代表需要判断的字符。

返回值:

  • 如果 ch 是数字字符('0' - '9'),则返回非零值(通常为 1)。
  • 如果 ch 不是数字字符,则返回 0。

用法:

你需要先包含 <cctype> 头文件,然后可以使用 std::isdigit 来检查一个字符是否是数字。例如:

#include <iostream>
#include <cctype> // 包含 isdigit 函数

int main() {
    char c = '5';
    if (std::isdigit(c)) {
        std::cout << c << " 是一个数字字符。" << std::endl;
    } else {
        std::cout << c << " 不是一个数字字符。" << std::endl;
    }

    return 0;
}

输出:

5 是一个数字字符。

std::stoi 是 C++ 标准库中的一个函数,用于将字符串转换为整数。它属于 <string> 头文件中的函数,函数原型如下:

int stoi(const std::string& str, std::size_t* pos = 0, int base = 10);

参数:

  1. str:需要转换的字符串,它可以包含一个可解析为整数的数字。
  2. pos(可选):这是一个指向 std::size_t 的指针,用于存储转换后第一个未解析字符的位置。如果你不关心位置,可以将其设为 nullptr 或省略。
  3. base(可选):表示转换的进制,默认为 10,即将字符串解析为十进制整数。如果需要解析成其他进制(例如二进制、十六进制等),可以修改这个参数。

返回值:

  • 返回将字符串转换后的整数值。

stoi

用法:

你需要先包含 <string> 头文件,然后可以使用 std::stoi 来将字符串转换为整数。例如:

#include <iostream>
#include <string> // 包含 stoi 函数

int main() {
    std::string str = "12345";
    
    try {
        int num = std::stoi(str); // 将字符串转换为整数
        std::cout << "转换后的整数是: " << num << std::endl;
    } catch (const std::invalid_argument& e) {
        std::cerr << "无效的数字字符串: " << e.what() << std::endl;
    } catch (const std::out_of_range& e) {
        std::cerr << "数字超出范围: " << e.what() << std::endl;
    }

    return 0;
}

输出:

转换后的整数是: 12345
posted @ 2024-09-22 21:56  牛马chen  阅读(32)  评论(0编辑  收藏  举报