char m_cData[64];
memset(m_cData,0,sizeof(m_cData));
strcpy(m_cData,"111111");
m_cData[56]='P';
m_cData[57]='P';
m_cData[58]='P';
m_cData[59]='P';
m_cData[60]='1';
m_cData[61]='0';
m_cData[62]=' ';
m_cData[63]='\0';
MessageBox(m_cData);为什么打印出来的还是111111,后面加的内容为什么没有?

解决方案 »

  1.   

    111111后面一长串0, = '\0',已经代表字符串结束了,后面的不会继续下去了。
    MessageBox(m_cData + 56) 才会出来后面的。
      

  2.   

    char m_cData[64];
    memset(m_cData,0,sizeof(m_cData));
    strcpy(m_cData,"111111");
    m_cData[6]='P';
    m_cData[7]='P';
    m_cData[8]='P';
    m_cData[9]='P';
    m_cData[10]='1';
    m_cData[11]='0';
    m_cData[12]=' ';
    m_cData[13]='\0';
    MessageBox(m_cData);试试
      

  3.   

    char m_cData[64];
    memset(m_cData,0,sizeof(m_cData));
    strcpy(m_cData,"111111");
    那我怎么才能得到
    m_cData="111111                                   PPPP10 ";
      

  4.   

    这样就可以获得m_cData="111111 PPPP10 "
    char m_cData[64];
    memset(m_cData,0,sizeof(m_cData));
    strcpy(m_cData,"111111");
    m_cData[6] = ' ';
    m_cData[7] = 'P';
    m_cData[8] = 'P';
    m_cData[9] = 'P';
    m_cData[10] = 'P';
    m_cData[11] = '1';
    m_cData[12] = '1';
    m_cData[13] = 0;如果是想插入特殊字符也可以
    你可以只要保证在0~56位置上不存在'\0',
    然后将m_cData[57]到m_cData[63]设置为特殊字符对应的ASCII码就行了
    这样就能达到你要的效果。
      

  5.   

    char m_cData[64];
    memset(m_cData,'0',sizeof(m_cData));//字符就可以,了
    strcpy(m_cData,"111111");
    m_cData[56]='P';
    m_cData[57]='P';
    m_cData[58]='P';
    m_cData[59]='P';
    m_cData[60]='1';
    m_cData[61]='0';
    m_cData[62]=' ';
    m_cData[63]='\0';
    MessageBox(m_cData);试试这个
      

  6.   

    char m_cData[64];
    memset(m_cData,0,sizeof(m_cData));
    strcpy(m_cData,"111111");
    for (int i =6;i<56;i++)
    {
    m_cData[i]=' ';
    }
    m_cData[56]='P';
    m_cData[57]='P';
    m_cData[58]='P';
    m_cData[59]='P';
    m_cData[60]='1';
    m_cData[61]='0';
    m_cData[62]=' ';
    m_cData[63]='\0';
    MessageBox(m_cData);
      

  7.   

    strcpy肯定会在字符串末尾加0的。
    你可以先都初始化为空格,然后往数组里一个一个填充,最后记得要在末尾手动加0
      

  8.   


    char m_cData[64];
    memset(m_cData,' ',sizeof(m_cData));
    char* szBuf = "111111";
    int i = 0;
    while('\0' != *szBuf)
    {
    m_cData[i++]=*szBuf++;
    }
    m_cData[56]='P';
    m_cData[57]='P';
    m_cData[58]='P';
    m_cData[59]='P';
    m_cData[60]='1';
    m_cData[61]='0';
    m_cData[62]=' ';
    m_cData[63]='\0';
    MessageBox(m_cData);