笔试:使用fprintf和sscanf 判断IP字符串的正确性和数字IP之间的转换
2013-04-19 16:58
411 查看
/***************************************************************** sscanf(const char *buffer,const char *format,[argument ]...) 它的返回值是参数的数据,也就是argument的个数, buffer:存储的数据,format:格式控制字符串,argument:选择性设定字符串。 ******************************************************************/ #include<cstdio> #include<cstring> #include<iostream> using namespace std; bool isIP(char *str) { int a,b,c,d; int ret=0; int len=strlen(str); str[len]='\0'; ret=sscanf(str,"%d.%d.%d.%d",&a,&b,&c,&d); if(ret==4&&(a>=0&&a<=255)&&(b>=0&&b<=255)&&(c>=0&&c<=255)&&(d>=0&&d<=255)) return 1; else return 0; } char *value_to_ip(const long& nValue,char *strTemp) { sprintf( strTemp,"%ld.%ld.%ld.%ld", (nValue&0xff000000)>>24, (nValue&0x00ff0000)>>16, (nValue&0x0000ff00)>>8, (nValue&0x000000ff) ); return (strTemp); } int main(void) { char table[4][15]={"192.168.1.1","0.0.0.0","19999.11.11","199111057239"}; for(int i=0;i<4;i++) cout<<isIP(table[i])<<endl; long int num[4]={0,18224001830,2010021050021,610}; char temp[64]={0}; for(int i=0;i<4;i++) cout<<value_to_ip(num[i],temp)<<endl; return 0; }
相关文章推荐
- 我的JavaScript回顾之路_01—0206—++在前在后区别/&&和||/条件判断语句/循环语句的区别/字符串类型数字和数字类型之间的转换
- hdu 2206IP的计算(sscanf的使用 & 字符串判断处理)
- 字符串与数字之间的相互转换、判断大小端(用的是union)
- boost-使用format和lexical_cast实现数字和字符串之间的转换
- 使用stringstream实现数字到字符串之间的转换
- C++中数字与字符串之间的转换(使用CString.Format或者sprintf)
- 使用CString 的 SpanIncluding 函数判断字符串是否全为数字
- 字符串内特殊字符在html_javascript_xml等内使用时的转换 ,"缺少十六进制数字"错误的处理
- Android 获取当前系统时间 时间之间的转换 判断字符串是否日日期类型
- java中的字符,字符串,数字之间的转换
- 字符串和数字之间的转换(C/C++)
- Java之使用json-lib进行对象与json字符串之间的转换
- C++中字符串和数字之间的转换
- 字符串和数字之间的相互转换
- Qt数字与字符串之间的相互转换
- JS:字符串和数字之间的相互转换
- 使用CString 的 SpanIncluding 函数判断字符串是否全为数字
- 判断C#中的字符串是否是数字,如果是转换成int类型
- 7.1 C++中数字与字符串之间的转换(转)
- 字符串和数字之间的相互转换总结