如何将char数组转换为等效的ascii十进制数组?我在QT中尝试使用QString和QbyteArray。但它没有用。
i / p:" 1,9,10,2"
o / p:" 4944574449484450" (1' ascii十进制值是49, ,ascii十进制值是44, 9< ascii十进制值是57,依此类推......)。
答案 0 :(得分:4)
如何将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
和其他整数类型作为整数
答案 1 :(得分:-2)
这应该有效
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];
}
答案 2 :(得分:-2)
你可以轻松地这样做。它是C ++但它可以在C中使用适当的includes和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的一些提示,现在应该会更好......