C++ program to pad octets of IP Address with Zeros

Learn: How to pad IP Address octets with Zeros? In this C++ program, we will learn to pad each octet of an IP Address.
[Last updated : February 26, 2023]

Padding the octets of IP Address with Zeros

Sometimes, we need to use IP Address in three digits and we don’t want to input zeros with the digits, this C++ program will pad each octets of an IP Address with Zeros.

For Example: The Input format of an IP Address if "192.168.10.43", the output after padding with zeros will be "192.168.010.043".

C++ code to pad octets of IP Address with zeros

#include <iostream>
using namespace std;

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void padZeroIP(char* str)
{
    int oct1 = 0;
    int oct2 = 0;
    int oct3 = 0;
    int oct4 = 0;

    int CIDR = 0;

    int i = 0;

    const char s[2] = ".";
    char* token;

    /* get the first token */
    token = strtok(str, s);

    oct1 = atoi(token);

    /* walk through other tokens */
    while (token != NULL) {
        token = strtok(NULL, s);

        if (i == 0)
            oct2 = atoi(token);
        else if (i == 1)
            oct3 = atoi(token);
        else if (i == 2)
            oct4 = atoi(token);
        i++;
    }

    sprintf(str, "%03d.%03d.%03d.%03d", oct1, oct2, oct3, oct4);
}

// main program
int main()
{
    char ip[] = "192.168.10.43";

    cout << endl
         << "IP  before padding:  " << ip;

    padZeroIP(ip);

    cout << endl
         << "IP  after padding:  " << ip;
    cout << endl;

    return 0;
}

Output

IP  before padding:  192.168.10.43
IP  after padding:  192.168.010.043

In above function we used strtok() function to tokenize IP address by dot (.) operator and then save each octets in 3 bytes padded with zeros.



Related Programs



Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.