繁体   English   中英

无符号char数组的十进制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.

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