C语言实现字符串IP与整数型IP的相互转换
2014-09-07 17:22
351 查看
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> int main(int argc,char *argv[]) { const char *ip ="192.168.34.232"; char *ipstr=NULL; char str_ip_index[4]={'\0'}; unsigned int ip_int,ip_add=0,ip_int_index[4],ip_temp_numbr=24; int j =0,a=3; for(unsigned int i =0;i<=strlen(ip);i++)//要用到'\0' { if (ip[i]=='\0'||ip[i]=='.') { ip_int =atoi(str_ip_index); if (ip_int<0||ip_int>255) { printf("IP地址有误\n"); system("pause"); return 0; } ip_add+=(ip_int*((unsigned int)pow(256.0,a))); a--; memset(str_ip_index,0,sizeof(str_ip_index)); // for (int x=0;x<4;x++) // { // str_ip_index[x]='\0'; // } j=0; continue; } str_ip_index[j]=ip[i]; j++; } printf("%u\n",ip_add); //转换成x.x.x.x for(j=0;j<4;j++) { ip_int_index[j]=(ip_add>>ip_temp_numbr)&0xFF; ip_temp_numbr-=8; } if ((ipstr=(char *)malloc(17*sizeof(char)))==NULL) { return 0; } sprintf(ipstr,"%d.%d.%d.%d",ip_int_index[0],ip_int_index[1],ip_int_index[2],ip_int_index[3]); printf("%s\n",ipstr); free(ipstr); ipstr=NULL; system("pause"); return 0; }
转换效果:
相关文章推荐
- linux 内核中ip字符串与整数相互转换 手动实现inet_aton 与inet_ntoa 的功能
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言中字符串和数字的相互转换实现代码
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- C语言实现字节流与十六进制字符串的相互转换
- 全角和半角相互转换(C语言实现)
- ip 与 整数间 的相互转换 python实现
- ip 与 整数间 的相互转换 python实现
- JAVA使用Dom4j实现字符串和xml文件相互转换
- C语言实现 递归法 数字转换成字符串
- 用C语言(apue)实现 把时间戳转换为国标格式的字符串(2013-09-03 15:36:12)的函数
- ip字符串与unsigned long 的相互转换
- 面试中长间的strcpy、字符串整形相互转换、memcpy函数的实现