c# – 将向量{1,2,3}转换为字符串“1-2-3”AS DIGITS
作者:互联网
我想在std :: vector< unsigned char>中显示数字.在屏幕上,但在前往收件人的途中,我需要将这些数字填入std :: string.
无论我尝试了什么(atoi,reinterpret_cast,string.c_str()……),都给了我这些原始数字的无意义或字母表示 – 即它们对应的ascii字符.
那么我如何轻松(最好是标准方法)转换矢量< unsigned char> {1,2,3}成一个字符串“1-2-3”?
在我提到的原帖(后来编辑)中,我可以用C#或Java做到这一点.
根据πάνταῥεῖ的要求提供C#或Java中的示例,这里有一个快速的Linq C#方式:
public static string GetStringFromListNumData<T>(List<T> lNumData)
{
// if (typeof(T) != typeof(IConvertible)) throw new ArgumentException("Expecting only types that implement IConvertible !");
string myString = "";
lNumData.ForEach(x => myString += x + "-");
return myString.TrimEnd('-');
}
解决方法:
只需使用std::ostringstream
:
std::vector<unsigned char> v{1,2,3};
std::ostringstream oss;
bool first = true;
for(auto x : v) {
if(!first) oss << '-';
else first = false;
oss << (unsigned int)x;
}
std::cout << oss.str() << std::endl;
标签:data-conversion,c,string,vector,c-2 来源: https://codeday.me/bug/20191003/1845718.html