大佬教程收集整理的这篇文章主要介绍了c – 从整数值返回固定长度的std :: string,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须派生一个函数,它接受整数值并将固定的长度字符串返回给字符串指针;
例如 – > int值的范围为0到-127
所以对于int值0 – >它应该显示000
对于值-9 – >它应该返回-009
值为-50 – >它应该返回-050
值为-110 – >它应该返回-110
所以简而言之,在所有情况下,长度应该相同.
我做了什么:我已经根据下面的要求定义了这个功能.
我需要帮助的地方:我已经派生了一个函数,但我不确定这是否是正确的方法.当我在Windows端的独立系统上测试它时,exe有时会停止工作,但是当我在Linux机器上包含这个功能和整个项目时,它可以完美地工作.
/* function(s)to implement fixed Length RSSi */ std::string convertString( const int numberRSSi,std::string addedPrecison="" ) { const std::string delimiter = "-"; stringstream ss; ss << numberRSSi ; std::string tempString = ss.str(); std::string::size_type found = tempString.find( delimiter ); if( found == std::string::npos )// not found { tempString = "000"; } else { tempString = tempString.substr( found+1 ); tempString = "-" +addedPrecison+tempString ; } return tempString; } std::string stringFixedLenght( const int number ) { std::string str; if( (number <= 0) && (number >= -9) ) { str = convertString( number,"00"); } else if( (number <= -10) && (number >= -99) ) { str = convertString( number,"0"); } else { str= convertString(number,""); } return str; } // somewhere in the project calling the function ErrorCode A::GetNowString( std::string macAddress,std::string *pString ) { ErrorCode result = ok; int lvalue; //some more code like iopening file and reading file //..bla // ..bla // already got the value in lvalue ; if( result == ok ) { *pString = stringFixedLenght( lValue ); } // some more code return result; }
std::string fixedLength(int value,int digits = 3) { unsigned int uvalue = value; if (value < 0) { uvalue = -uvalue; } std::string result; while (digits-- > 0) { result += ('0' + uvalue % 10); uvalue /= 10; } if (value < 0) { result += '-'; } std::reverse(result.begin(),result.end()); return result; }
以上是大佬教程为你收集整理的c – 从整数值返回固定长度的std :: string全部内容,希望文章能够帮你解决c – 从整数值返回固定长度的std :: string所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。