我正在尝试使用该inet_addr
函数来转换字符 IP 地址,但我认为由于我传递给 'inet_addr' 函数的 IP 地址具有前导零(192.169.055.075)
,因此 'inet_addr' 函数对此的解释不同。关于如何删除前导零的任何建议?
谢谢
char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);
我正在尝试使用该inet_addr
函数来转换字符 IP 地址,但我认为由于我传递给 'inet_addr' 函数的 IP 地址具有前导零(192.169.055.075)
,因此 'inet_addr' 函数对此的解释不同。关于如何删除前导零的任何建议?
谢谢
char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);
您可以inet_pton(3)
改用 - 它不会将前导零解释为八进制前缀。
怎么样:
string addr("192.168.055.075");
replace( addr.begin(), addr.end(), '.', ' ' );
istringstream iss(addr);
int a,b,c,d;
iss >> a >> b >> c >> d;
ostringstream oss;
oss << a << '.' << b << '.' << c << '.' << d;
string addrWithoutLeadingZeros( oss.str() );