代码之家  ›  专栏  ›  技术社区  ›  Weqk

如何将int转换为ASCII字符C++

  •  0
  • Weqk  · 技术社区  · 12 年前

    我必须将int转换为ASCII字符串。 基本上,我想要这个:

        int iTest = 128;
        char ca[3];
    ??? --> **SOLUTION :** sprintf(ca,"%d",iTest);
    

    结果是:

     ca[0] = 0x31;--> Hexcode of '1'
     ca[1] = 0x32;
     ca[2] = 0x38;
    
    3 回复  |  直到 12 年前
        1
  •  1
  •   masoud    12 年前

    使用 std::string std::to_string :

    #include <string>
    #include <iostream>
    
    using namespace std;
    
    ...
    
    int iTest = 128;
    
    string ca = to_string(iTest);
    
    for (int i = 0; i < ca.size(); i++)
    {
        cout << hex << "0x" << (int) ca[i] << endl;
    }
    

    结果:

    0x31
    0x32
    0x38
    
        2
  •  0
  •   Kiril Kirov    12 年前
    for each digit
        ca[ i ] = digit + '0';
    

    笔记:

    • 注意数字的不同长度
    • 分配 ca 动态地,基于数字的“长度”(位数)
    • 可以使用 % / 用于模和除法的运算符。
        3
  •  0
  •   Some programmer dude    12 年前

    使用模和除法运算符得到每个数字,然后打印每个数字的加法 '0' .