А какая цель? Сделать самому конвертер из ip4 в бинарный вид со своими функциями? Или просто написать работающую программу?
Если 2 то можете за основу вщять этот код
#include <iostream>
#include <bitset>
#include <string>
int main()
{
std::string delimiter = ".";
size_t pos = 0;
std::string s = "192.168.0.0";
while ((pos = s.find(delimiter)) != std::string::npos) {
auto token = s.substr(0, pos);
std::string binary = std::bitset<8>(stoi(token)).to_string(); //to binary
std::cout<<binary<<" ";
s.erase(0, pos + delimiter.length());
}
std::cout << std::bitset<8>(stoi(s)).to_string() << std::endl;
}
Если 1, то разбейте задачу на части.
1 - написать функцию split, которая вернет массив из 4 элемнтов(или в зависимости от того сколько раз смогла разделить строку).
2 - написать конвертер из 10 системы в 2.
3 - написать функцию которая заполнит нулями вашу строку, если в ней меньше 8 символов
в целом все эти функции будут полезны и по отдельности, поэтому не надо всё делать в одной функции, вам же потом будет проще дебажить.