首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言 把111111110.转换为IP地址 代码出现的有关问题

2013-07-11 
C语言 把111111110...转换为IP地址 代码出现的问题做一个题目,把类似11111111111111111111111100000000 这

C语言 把111111110...转换为IP地址 代码出现的问题
做一个题目,把类似11111111111111111111111100000000 这样的一串32位的数字转成IP地址(本例为:255.255.255.0)。

我写了一些代码(还没写完),思路是把这串数字存到 char a[33]数组里面。然后分成四个小的数组存到 a0_7[]、a8_15[]、a16_23[]、a24_31[]里面。然后用atoi函数把每个小数组从字符串转为整数计算输出即可。但是下面赋值到四个小数组的代码,编译没问题在运行是出错了,不知是哪里有问题。(数组也没越界呀,希望前辈指点)

                                                                            
[解决办法]
    for(i=8;i<=15;i++)
        a8_15 [i]=a[i];
 
    for(i=16;i<=23;i++)
        a16_23[i]=a[i];
 
    for(i=24;i<=31;i++)
        a24_31[i]=a[i];
 都越界了!a8_15,    a16_23  a24_31 数组下标都是0-7啊 你for循环错了

   for(i=0;i<=7;i++)
        a8_15 [i]=a[i+8];
 
    for(i=0;i<=7;i++)
        a16_23[i]=a[i+16];
 
    for(i=0;i<=7;i++)
        a24_31[i]=a[i+24];

热点排行