2012-05-20 41 views
0

我有下面的代碼。我想通過將值增加1()來修改packet_received的前三個字符(001)。但是,我得到下面的輸出,當我運行代碼:整型到char數組轉換C

Hop_network = 001 
new Hop_network = 2 
packet_received = 2 

我想看到的是:

packet_received = 002456

我該怎麼辦呢?當第一個字符不是0時,代碼工作正常,並且receid消息始終不必始終爲0。謝謝你的答案。

int main(int argc,char *argv[]){ 
    char Hop_network[4]; 
    char packet_received[]= "001456"; 
    int Hop_increaser; 

    Hop_network[0] = packet_received[0]; 
    Hop_network[1] = packet_received[1]; 
    Hop_network[2] = packet_received[2]; 
    Hop_network[3] = '\0'; 
    printf("Hop_network = %s\n", Hop_network); 

    Hop_increaser = atoi(Hop_network); 
    Hop_increaser = Hop_increaser + 1; 
    sprintf(Hop_network, "%d", Hop_increaser); 
    printf("new Hop_network = %s\n", Hop_network); 

    packet_received[0] = Hop_network[0]; 
    packet_received[1] = Hop_network[1]; 
    packet_received[2] = Hop_network[2]; 
    printf("packet_received = %s\n", packet_received); 
    return 0; 
} 

回答