繁体   English   中英

在C ++中将八进制字符串转换为十进制字符串

[英]Convert octal string to decimal string in C++

将具有八进制数字的字符串转换为具有相同数字的十进制表示的字符串的最简单方法是什么?

我可以使用strtol将其转换为int值,然后使用stringstream再次转换为字符串:

string oct_number("203"); 

// converts into integer
int value = strtol(oct_number.c_str(), NULL, 8);

// converts int to decimal string
stringstream ss;
ss  << value;
string dec_number = ss.str();

但是:有什么更快的方法吗? 我对stringstream类的理解很差,我缺少什么吗?

std::string result;
Try
{
   result = std::to_string( std::stoi( oct_number, 0, 8 ) );
}
catch ( ... )
{
//...
}

在c ++ 11中,您可以使用string dec_number = to_string (value); 您也可以使用sprintf但需要一些缓冲区:

char buf[64];
sprintf(buf,"%d",value);
string dec_number = buf;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM