别被夏天的我的如意狼君八月薇妮所欺骗第二季 百度云

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 6, 距离下一级还需 194 积分
论坛徽章:0
画出程序流程图:判断一个给定的字符串是否为有效的IP地址,输出判断结果。举例:testip 10.1.1.1 输出“10.1.1.1 is a valid IP Address”; testip xxx 输出“xxx is not a IP Address”;
是一道面试题。没有多少思路。希望各位能够帮忙给点思路。
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
论坛徽章:1
man inet_network
白手起家, 积分 6, 距离下一级还需 194 积分
论坛徽章:0
他是要我画流程图
家境小康, 积分 1042, 距离下一级还需 958 积分
论坛徽章:0
面试动歪脑筋,去看string的处理去
白手起家, 积分 60, 距离下一级还需 140 积分
论坛徽章:0
去看看IP怎么划分的,还有一些规则问题.
白手起家, 积分 39, 距离下一级还需 161 积分
论坛徽章:0
原帖由 eflow 于
17:46 发表
他是要我画流程图
(0)基本检查,比如不能包括@,#....
(1)字符串中要有三个., 然后以.为分割得到每一段
(2)把每一段转换为10进制,看是不是大与255;大于则无效,
自己再补补
丰衣足食, 积分 895, 距离下一级还需 105 积分
论坛徽章:0
1)用.分隔字符串,如子串个数大于4,返回0
2)对每一个子串,atoi(),如果大于255或者无法转换 返回0
稍有积蓄, 积分 275, 距离下一级还需 225 积分
论坛徽章:0
原帖由 eflow 于
17:19 发表
画出程序流程图:判断一个给定的字符串是否为有效的IP地址,输出判断结果。举例:testip 10.1.1.1 输出“10.1.1.1 is a valid IP Address”; testip xxx 输出“xxx is not a IP Address”;
是一道面试题。没 ...
如果这个都没有思路,建议还是增加基础知识的学习增加一下程序设计训练。
白手起家, 积分 7, 距离下一级还需 193 积分
论坛徽章:0
简单的方法:建立状态机扫描字符串;复杂的方法:太多了。。。
白手起家, 积分 2, 距离下一级还需 198 积分
论坛徽章:0
要有且有三个‘.’,然后对每个点分隔的部分只能是数字,并且&=255,此时在用ip的规则去过滤。
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处2015年11月 扩充话题大版内专家分月排行榜第一2015年7月 扩充话题大版内专家分月排行榜第一2015年1月 扩充话题大版内专家分月排行榜第一2014年9月 扩充话题大版内专家分月排行榜第一(补)2013年9月 扩充话题大版内专家分月排行榜第一2013年8月 扩充话题大版内专家分月排行榜第一2013年7月 扩充话题大版内专家分月排行榜第一
2016年3月 扩充话题大版内专家分月排行榜第二2015年12月 扩充话题大版内专家分月排行榜第二2015年6月 扩充话题大版内专家分月排行榜第二2015年2月 扩充话题大版内专家分月排行榜第二2014年10月 扩充话题大版内专家分月排行榜第二2014年8月 扩充话题大版内专家分月排行榜第二
2007年9月 C/C++大版内专家分月排行榜第三2007年8月 C/C++大版内专家分月排行榜第三2006年11月 C/C++大版内专家分月排行榜第三
2013年5月 高性能开发大版内专家分月排行榜第二2013年4月 高性能开发大版内专家分月排行榜第二
2010年12月 C/C++大版内专家分月排行榜第三
2008年2月 VB大版内专家分月排行榜第一2003年4月 VC/MFC大版内专家分月排行榜第一2002年11月 VC/MFC大版内专家分月排行榜第一
2011年11月 VC/MFC大版内专家分月排行榜第二2008年3月 VB大版内专家分月排行榜第二2008年3月 硬件/嵌入开发大版内专家分月排行榜第二2003年4月 其他开发语言大版内专家分月排行榜第二2003年4月 VB大版内专家分月排行榜第二2003年3月 VB大版内专家分月排行榜第二
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。随笔- 321&
评论- 138&
&&&&&&&&&&&&&
bool f (const char *s)
int s1,s2,s3,s4;
if (sscanf(s, "%d.%d.%d.%d", &s1, &s2, &s3, &s4) != 4)
return false;
if ((s1 & 0xffffff00) || (s2 & 0xffffff00) || (s3 & 0xffffff00) || (s4 & 0xffffff00))
return false;
return true;
&posted on
阅读(...) 评论()在shell中如何判断字符串是否为有效的IP地址
近来需要写个小shell判断用户输入的字符串是否为有效的ip地址,简单排除了以下几种情况:
1. 以点号为分隔的域不等于4或6;
2. 出现字符;
3. 某域以0开头;
4. 各域数值长度大于3;
5. 各域数值大于255
6. 第一个和最后一个域为0
IPADDR=192.168.1.1 (有效)
IPADDR=192.168.0.254(有效)
IPADDR=10.0.0.0(无效)
IPADDR=0.1.1.1(无效)
IPADDR=192.168.001.001 (无效)
IPADDR=1aa.2bb.3cc.4dd (无效)
IPADDR=aaa.bbb.ccc.ddd (无效)
IPADDR=192.168.1.1.2 (无效)
IPADDR=292.168.1.1(无效)
IPADDR=192.168.1.1111(无效)
脚本如下:
_ckIPaddr () {
ckStep1=`echo $1 | awk -F"." '{print NF}'`
if [ $ckStep1 -eq 4 ] || [ $ckStep1 -eq 6 ]
&&&&&&&&&&&&&&&
ckStep2=`echo $1 | awk -F"." '{if ($1!=0
&& $NF!=0) split ($0,IPNUM,".")}
{ for (k in IPNUM) if (IPNUM[k]==0) print IPNUM[k]; else if
(IPNUM[k]!=0 &&
IPNUM[k]!~/[a-z|A-Z]/ &&
length(IPNUM[k])&=3
IPNUM[k]&255 &&
IPNUM[k]!~/^0/) print IPNUM[k]}'| wc -l`
&&&&&&&&&&&&&&&
if [ $ckStep2 -eq $ckStep1 ]
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
CK_IPADDR=`_ckIPaddr $IPADDR`
if [ $CK_IPADDR -eq 1 ]
echo "The string $IPADDR is not a correct ipaddr!!!"
另外补充正则表达式的方法:
regex="\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])\b"
ckStep2=`echo $1 | egrep $regex | wc -l`
if [ $ckStep2 -eq 0 ]
echo "The string $IPADDR is not a correct ipaddr!!!"
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。3436人阅读
每日随笔(4)
工作中遇到的小问题,写成随笔
问题描述:
typedef struct
char chWorkstationName[11];//工作站名
char chIP[16];//IP地址
char chAE[16];//AE名
char chUsedPrinter[41];//使用打印机
char chOcrFlag[40];//是否使用Ocr设置
} WORKSTATION_SET;
typedef std::list& WORKSTATION_SET & WORKSTATION_SET_LIST; //工作站列表
WORKSTATION_SET_LIST::
it = std::find_if(
_Module.m_workstationlist.begin(),
_Module.m_workstationlist.end(),
SearchWorkstationByIP(job.Workstation.IP));
if( it != _Module.m_workstationlist.end() )
job.Workstation.Name = it-&chWorkstationN
if ( it-&chOcrFlag == _T(&使用&))
job.Workstation.nOcrFlag = 1;
job.Workstation.nOcrFlag = 2;
HHWORKSTATION_SET_LIST::
it = std::find_if(
_Module.m_workstationlist.begin(),
_Module.m_workstationlist.end(),
SearchWorkstationByIP(job.Workstation.IP));
if( it != _Module.m_workstationlist.end() )
job.Workstation.Name = it-&chWorkstationN
CString strOcrFlag = it-&chOcrF
if ( strOcrFlag == _T(&使用&))
job.Workstation.nOcrFlag = 1;
job.Workstation.nOcrFlag = 2;
上述(2)和(3)中出现两段不同的代码,在(2)中执行到if语句的时候,判断进入else分支执行,在(3)中执行到if语句的时候,判断进入到if分支执行。
根据期望,应该进入到if分支执行,出现的原因如下
<span style="color:#.参看(1)中的定义可以发现,chOcrFlag是一个char类型的数组,& it-&chOcrFlag&的类型是char*(数组名是数字的首地址)。所以,在(2)中的if比较中,实际上是用一个& char*类型的数据& 和 &一个字符串常量 &在进行比较,不可能相等
<span style="color:#.参看(3)中的代码发现& CString strOcrFlag = it-&chOcrF& 这一句的strOcrFlag变量可以接受char*类型的赋&#20540;,这是因为类CString的对象在被赋&#20540;的时候会自动的将char*类型的变量做一个转换(这个转换是默认),所以达到了效果
<span style="color:#.需要注意的一点是:& c和c&#43;&#43;语言本身都没有字符串变量这种类型&&&常用的CString、string都是微软MFC或标准库后来提供的&
4.c&#43;&#43;中,在进行字符串的比较时,一般使用strcmp进行比较& 或者& 将字符串赋&#20540;给CString或者string等类,再进行比较(如(3)的做法就可以&&或者&& 进行转换(CString)it-&chOcrFlag也可以)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:96402次
积分:1256
积分:1256
排名:千里之外
原创:31篇
转载:10篇
评论:10条
(2)(1)(3)(11)(5)(2)(5)(1)(10)(1)

我要回帖

更多关于 不要被夏天的狼君欺骗 的文章

 

随机推荐