c++ - C ++将字符串转换为int
问题描述
使用 stoi() 方法将字符串转换为 int,但即使有 alpahabet,它也会转换为 int。
string str1 = "45";
string str2 = "31337 test";
int myint1 = stoi(str1); // 45
int myint2 = stoi(str2); // 31337
str2 被转换为 int,但我不想要这种转换,因为它有字母表。如果有任何方法可以捕获或阻止这种转换。
解决方案
您可以检查处理的字符数。
string str2 = "31337 test";
std::size_t num;
int myint2 = stoi(str2, &num); // 31337
// ^^^^
// num (the number of characters processed) would be 5
if (num != str2.length()) {
...
}
推荐阅读
- html - 在移动设备上,我的网站的主要内容向右溢出太远了
- javascript - React:指定嵌套子组件的位置?
- node.js - PDF 到节点中的图像
- php - 如何显示自定义帖子类型的自定义字段
- tensorflow - tensorFlowJs Json 模型问题
- javascript - 如何在 css 上创建这个视图?还是JavaScript?
- azure - Azure 策略修改效果
- java - IMessageReciever.receiveBatch() 的 Azure ServiceBus 奇怪行为
- firebase - 如何在 Flutter 中从 firebase 显示我的 PDF 之前添加循环进度指示器?
- reactjs - 是否可以使用展开运算符来设置反应组件道具?