解题思路:
1.将输入以字符串方式读取
2.通过ASCII判断除了"."的每一个字符是否在0-9之间。
注意事项:
进行数字运算时要将字符型强制转换为整型。
参考代码:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int ip(char *pt);
int main()
{
char ar[31];
while(scanf("%s",ar)!=EOF)
{
if(ip(ar)==1)
printf("Y\n");
else
printf("N\n");
}
return 0;
}
int ip(char *pt)
{
int flag=5; //标志位,当flag==0时说明完全符合条件
int ar=0;
int num;
num=strlen(pt); //获取字符串长度
while(*pt<='9'&&*pt>='0'||*pt=='.')
{
if(*pt<='9'&&*pt>='0')
{
ar*=10;
ar+=(int)(*pt-48); //0的ascii码为48
num--;
}
if(*pt=='.')
{
num--;
if(ar>=0&&ar<=255)
{
flag--;
ar=0;
}
}
if(num==0)
{
if(ar>=0&&ar<=255)
{
flag--;
ar=0;
break;
}
}
pt++;
}
return flag;
}
0.0分
0 人评分