Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串(可以是十进制字符串或十六进制字符串)转换为整数C++_C++_Std - Fatal编程技术网

将字符串(可以是十进制字符串或十六进制字符串)转换为整数C++

将字符串(可以是十进制字符串或十六进制字符串)转换为整数C++,c++,std,C++,Std,您好,我想将一个字符串转换为整数,该字符串可以是cpp中的十进制或十六进制字符串 例如:如果输入为10,则应输出10;如果输入为A,则应输出相应的十进制值,即10 我知道对于十进制字符串到整数,我们使用std::stoul,对于十六进制字符串到整数,我们使用std::strtoul,但是对于这两种类型的字符串,有/没有检查字符串的类型,可以做什么 谢谢对于C++11或更高版本,您只需使用std::stoi: 通过这种方式,您可以明确定义如何解释字符串,即十进制、十六进制等。以及它应该为i.e.1

您好,我想将一个字符串转换为整数,该字符串可以是cpp中的十进制或十六进制字符串

例如:如果输入为10,则应输出10;如果输入为A,则应输出相应的十进制值,即10

我知道对于十进制字符串到整数,我们使用std::stoul,对于十六进制字符串到整数,我们使用std::strtoul,但是对于这两种类型的字符串,有/没有检查字符串的类型,可以做什么


谢谢

对于C++11或更高版本,您只需使用std::stoi:


通过这种方式,您可以明确定义如何解释字符串,即十进制、十六进制等。

以及它应该为i.e.15输出什么?因为它既可以是十六进制也可以是十进制。这个函数可以用于几乎任何任意的基,就像。@Quimby你的意思是例如,例如,exampli gratia-例如,不是i.e id est-也就是说,你可以在柴油车里加油,但是…@user463035818或二进制,或八进制,或者任何大于1的基。对于十进制字符串,这是可以的,但对于十六进制字符串,它终止抛出“std::invalid_argument”的实例@SelMez,您必须告诉函数基是什么。它不会为你计算出来,因为15可能是十进制或十六进制。你如何使用它?例如std::stoiFF,0,16应该给出255作为输出。因此这意味着我没有其他选择,只能检查它是以10为底还是以16为底的字符串类型,然后用基值应用stoi。事实上,我不做任何事就想要它checking@SelMez对于这个解决方案,是的。有一个通用的解决方案,您不必指定基本bu,您如何让它处理15之类的内容。这是一个有效的十进制或十六进制整数,那么您希望得到什么呢?