如:
int i=5;
char s[4];
要把i的值存到s里,因为VC 里 int 类型占4个字节
存完之后s的值是s[0]=0,s[1]=0,s[2]=0,s[3]=4.
因为我要把i的值存到字符串中发送出去.

解决方案 »

  1.   

    _itoa, _itow
    Convert an integer to a string.
      

  2.   

    不是把int型转化为字符串类型.
    如果i的值是97
    s[3] 的值就是a 
    a 的ASCII码是97
    就是把i原封不动的复制到s里去
      

  3.   

    memcpy(s,(char*)i,4);
    这样不行,运行时出错!!!
      

  4.   

    int j = 0;
    int i = 97;
    int nMask[4] = {0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF};
    char a[4];
    for (j = 0; j < 4; j++)
    {
    a[j] = i & nMask[3 - j];
    }
      

  5.   

    上边那种写法比较好理解,如果你想简化一下,可以这么写:
    int j = 0;
    int i = 97;
    char a[4];
    for (j = 0; j < 4; j++)
    {
        a[j] = i >> (j * 8);
    }