题目
用C语言编写将IP地址转化为32位的整数
例如:10.0.2.15 转化结果为 167772687
要求:不允许用sscanf,strtok函数
扩展:将32位的整数转化为IP地址
例如:167772687 转化结果为 10.0.2.15
要求:不允许用sprintf函数
解题思路
1.先把IP字符串以字符’.'分割。
2.将每个子串转化成对应的整数
3.对每个整数根据对应位进行左移,例如:10左移8×3位,0左移8×2位,2左移8×1位,15左移8×0位。
代码展示
IP地址转化32位整数
int IptoInt(char* ip)
{
//定义二维数组存放分割后的字符串
char ip_str[4][4] = {
0 };
int i;
for(i = 0; i < 4; i++)
{
//定义指针给二维数组中的一维数组赋值
char *temp = ip_str[i];
while (*ip != '.' && *ip)
{
*temp = *ip