hdu 2206 IP的计算(最全的注意事项)

注意:

 1.非法字符(包括空格)

如下都是错的    	        
A.145.124.4 
192.168.18 123(用scanf输入的话,则接收的是:192.168.18)

2.'.'有且仅有3个,且不能连续出现,也不能首位,末位出现,如下都是错的
123..123.45
.124.45.6
45.134.4.

3.不能连续出现4个非 '.'的字符 如下都是错的
192.168.0123.41

4.分成四段数字,各数字<255。


#include<stdio.h>
#include<string.h>
char s[110];
int main()
{
    int sl;
    while(gets(s))
    {
        sl=strlen(s);
        //printf("%d
",sl);
        int i,sum=0,sum1=0,sum2=0;
        for(i=0;i<sl;i++)
        {
            if(s[sl-1]=='.'||s[0]=='.')break;
            if(s[i]>='0'&&s[i]<='9')
            {
                sum2=sum2*10+s[i]-'0';
                sum1++;
            }
            else if(s[i]=='.')
            {
                if(s[i+1]=='.')break;
                sum++;
                sum1=0;
                if(sum2>255)break;
                sum2=0;
            }
            else break;
            if(sum>3||sum1>3||sum2>255)break;
        }
        if(i==sl&&sum==3)
        printf("YES
");
        else printf("NO
");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/XDJjy/p/3250702.html