c语言ip判断

Python015

c语言ip判断,第1张

#include<stdio.h>

struct IP

{

int a

char q1

int b

char q2

int c

char q3

int d

}s

void yesno()

{

scanf("%d%c%d%c%d%c%d",&s.a,&s.q1,&s.b,&s.q2,&s.c,&s.q3,&s.d)

if(s.a<256&&s.a>0&&s.b<256&&s.b>0&&s.c<256&&s.c>0&&s.d<256&&s.d>0)

{

if(s.q1=='.'&&s.q1=='.'&&s.q1=='.')printf("YES\n")

else printf("NO\n") 

}

else printf("NO\n")

}

main()

{

int i

for(i=0i<99i++)

{yesno()}

}

可以试一下

#include <stdio.h>

 

int checkIP(const char* p)

{

  int n[4]

  char c[4]

  if (sscanf(p, "%d%c%d%c%d%c%d%c",

             &n[0], &c[0], &n[1], &c[1],

             &n[2], &c[2], &n[3], &c[3])

      == 7)

  {

    int i

    for(i = 0 i < 3 ++i)

      if (c[i] != '.')

        return 0

    for(i = 0 i < 4 ++i)

      if (n[i] > 255 || n[i] < 0)

        return 0

    return 1

  } else

    return 0

}

 

int main()

{

  const char* x[] =

  {

    "192.168.1.1",

    "10.0.0.1.",

    "127.256.0.1",

    "iugerjiogjioe",

    "172.16,0.1",

    0

  }

  const char* m[] = 

  {

    "不是合法的IP地址",

    "是合法的IP地址"

  }

  int i = 0

 

  while(x[i] != 0) {

    printf("%s %s\n", x[i], m[checkIP(x[i])])

    ++i

  }

  return 0

}