leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

defanging_ip_address.c (758B)


// 1108. Defanging an IP Address
#include "leetcode.h"

/*
 * given a valid ipv4 'address', return a defanged version of that ip address. a
 * defanged ip address replaces every period "." with '[.]'.
 */

char *defangIPaddr(char *address) {
  char *ip = (char *)calloc(sizeof(char), sizeof("###[.]###[.]###[.]###"));
  char *ans = ip;
  for (char *i = address; *i; i++) {
    if (*i == '.') {
      *ip++ = '[';
      *ip++ = '.';
      *ip++ = ']';
    } else
      *ip++ = *i;
  }
  return ans;
}

int main() {
  char *a1 = "1.1.1.1", *dipa1 = defangIPaddr(a1);
  char *a2 = "255.100.50.0", *dipa2 = defangIPaddr(a2);
  printf("%s\n", dipa1); // expect: 1[.]1[.]1[.]1
  printf("%s\n", dipa2); // expect: 255[.]100[.]50[.]0
  free(dipa1);
  free(dipa2);
}