[英]C++: How to convert a Unsigned char array to a CString by value, not ASCII
[英]decimal ascii value for unsigned char array
如何将char数组转换为其等效的ascii十进制数组? 我在QT中使用QString和QbyteArray进行了尝试。 但这是行不通的。
i / p:“ 1、9、10、2”
o / p:“ 4944574449484450”(1的ascii十进制值为49,socii十进制值为44,9的ascii十进制值为57,依此类推。)
如何将char数组转换为其等效的ascii十进制数组?
您没有,它已经以这种方式存储。 如果要将阵列打印为ASCII的十进制数字,只需将其输出(作为整数)即可:
char str[] = "1,9,10,2";
for( const char *s = str; *s; ++s ) std::cout << static_cast<int>( *s ) << ",";
// just output number instead of character
C ++中的char
是类似于int
的数值类型,不同之处在于std::ostream
char
输出为符号,将int
和其他整数类型输出为整数。
这应该工作
char arr[] = {'1','9','2'};
std::vector<int> vec(size); //size of the char array - in this case 3
for(int i = 0; i < size; i++)
{
vec[i] = arr[i];
}
您可以轻松地这样做。 它是C ++,但可以在C中使用适当的include和printf代替std:cout。
int main() {
char input[] = "1,9,10,2";
char output[3*sizeof(input) + 1];
output[0] = '\0';
for (size_t i = 0; i < strlen(input); i++) {
sprintf(output, "%s%d", output, input[i]);
}
std::cout << input << std::endl;
std::cout << output << std::endl;
return 0;
}
跟随@Nathan的一些提示,现在应该会更好...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.