Hello, OnlineGDB Q&A section lets you put your programming query to fellow community users. Asking a solution for whole assignment is strictly not allowed. You may ask for help where you are stuck. Try to add as much information as possible so that fellow users can know about your problem statement easily.

I take input like %c%c.%c%c.%c.%c.%c.%c but do-while doesnt work correctly.

0 votes
asked Mar 17, 2019 by anonymous
#include<stdio.h>
int main ()
{   char a1,a2,b1,b2,c1,c2,d1,d2,e1,e2,f1,f2,g1,g2,h1,h2;
    int a11,a22,b11,b22,c11,c22,d11,d22,a,b,c,d;
    do{
        printf("\nenter the IP Address:\n");
        scanf("%c%c.%c%c.%c%c.%c%c",&a1,&a2,&b1,&b2,&c1,&c2,&d1,&d2);

        switch(a1)
        {
                case '1': a11=1; break;   case '2': a11=2; break;   case '3': a11=3; break;
                case '4': a11=4; break;   case '5': a11=5; break;   case '6': a11=6; break;
                case '7': a11=7; break;   case '8': a11=8; break;   case '9': a11=9; break;
                case 'A': a11=10; break;  case 'B': a11=11; break;  case 'C': a11=12; break;
                case 'D': a11=13; break;  case 'E': a11=14; break;  case 'F': a11=15; break; case '0': a11=0; break;
        }

        switch(a2)
        {
                case '1': a22=1; break;   case '2': a22=2; break;   case '3': a22=3; break;
                case '4': a22=4; break;   case '5': a22=5; break;   case '6': a22=6; break;
                case '7': a22=7; break;   case '8': a22=8; break;   case '9': a22=9; break;
                case 'A': a22=10; break;  case 'B': a22=11; break;  case 'C': a22=12; break;
                case 'D': a22=13; break;  case 'E': a22=14; break;  case 'F': a22=15; break; case '0': a22=0; break;
        }

        switch(b1)
        {
            case '1': b11=1; break;   case '2': b11=2; break;   case '3': b11=3; break;
            case '4': b11=4; break;   case '5': b11=5; break;   case '6': b11=6; break;
            case '7': b11=7; break;   case '8': b11=8; break;   case '9': b11=9; break;
            case 'A': b11=10; break;  case 'B': b11=11; break;  case 'C': b11=12; break;
            case 'D': b11=13; break;  case 'E': b11=14; break;  case 'F': b11=15; break; case '0':b11=0; break;
        }

        switch(b2)
        {
            case '1': b22=1; break;   case '2': b22=2; break;   case '3': b22=3; break;
            case '4': b22=4; break;   case '5': b22=5; break;   case '6': b22=6; break;
            case '7': b22=7; break;   case '8': b22=8; break;   case '9': b22=9; break;
            case 'A': b22=10; break;  case 'B': b22=11; break;  case 'C': b22=12; break;
            case 'D': b22=13; break;  case 'E': b22=14; break;  case 'F': b22=15; break; case '0': b22=0; break;
        }

        switch(c1)
        {
            case '1': c11=1; break;   case '2': c11=2; break;   case '3': c11=3; break;
            case '4': c11=4; break;   case '5': c11=5; break;   case '6': c11=6; break;
            case '7': c11=7; break;   case '8': c11=8; break;   case '9': c11=9; break;
            case 'A': c11=10; break;  case 'B': c11=11; break;  case 'C': c11=12; break;
            case 'D': c11=13; break;  case 'E': c11=14; break;  case 'F': c11=15; break; case '0': c11=0; break;
        }

        switch(c2)
        {
            case '1': c22=1; break;   case '2': c22=2; break;   case '3': c22=3; break;
            case '4': c22=4; break;   case '5': c22=5; break;   case '6': c22=6; break;
            case '7': c22=7; break;   case '8': c22=8; break;   case '9': c22=9; break;
            case 'A': c22=10; break;  case 'B': c22=11; break;  case 'C': c22=12; break;
            case 'D': c22=13; break;  case 'E': c22=14; break;  case 'F': c22=15; break; case '0': c22=0; break;
        }

        switch(d1)
        {
            case '1': d11=1; break;   case '2': d11=2; break;   case '3': d11=3; break;
            case '4': d11=4; break;   case '5': d11=5; break;   case '6': d11=6; break;
            case '7': d11=7; break;   case '8': d11=8; break;   case '9': d11=9; break;
            case 'A': d11=10; break;  case 'B': d11=11; break;  case 'C': d11=12; break;
            case 'D': d11=13; break;  case 'E': d11=14; break;  case 'F': d11=15; break; case '0': d11=0; break;

        }

        switch(d2)
        {
            case '1': d22=1; break;   case '2': d22=2; break;   case '3': d22=3; break;
            case '4': d22=4; break;   case '5': d22=5; break;   case '6': d22=6; break;
            case '7': d22=7; break;   case '8': d22=8; break;   case '9': d22=9; break;
            case 'A': d22=10; break;  case 'B': d22=11; break;  case 'C': d22=12; break;
            case 'D': d22=13; break;  case 'E': d22=14; break;  case 'F': d22=15; break; case '0': d22=0; break;
        }

        a=a11*16+a22;
        b=b11*16+b22;
        c=c11*16+c22;
        d=d11*16+d22;

        if((a<=255) && (a>=0) && (b>=0) && (b<=255) && (c>=0) && (c<=255) && (d>=0) && (d<=255))
            printf("Thanks it is a valid IP address!");

        else
            printf("This is NOT a valid IP Address!");

        printf("a iisssss %d",a);
    }while(a>255 || a<0 || b>255 || b<0 || c>255 || c<0 || d>255 || d<0);

    return 0;
}

1 Answer

0 votes
answered Apr 2, 2019 by sriteja (180 points)
reshown Apr 2, 2019 by sriteja
i think error is because of the dot(.) in scanf.Because of that reason scanf is accepting only first  two inputs i.e a1 and a2.
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and and receive answers from other members of the community.
...