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);
参数:
str
:需要转换的字符串,它可以包含一个可解析为整数的数字。pos
(可选):这是一个指向std::size_t
的指针,用于存储转换后第一个未解析字符的位置。如果你不关心位置,可以将其设为nullptr
或省略。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
输出:
转换后的整数是: 123
第一个非数字字符的位置是: 3
在这个例子中,std::stoi
成功解析了字符串中的数字部分 "123"
,并且 pos
返回了第一个非数字字符 'a'
的位置。