4

関数を使用して char IP アドレスを変換しようとしていますinet_addrが、「inet_addr」関数に渡す IP アドレスの先頭にゼロが(192.169.055.075)あるため、「inet_addr」関数はこれを別の方法で解釈していると思います。先行ゼロを削除する方法について何か提案はありますか?

ありがとう

char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);
4

2 に答える 2

6

代わりに使用できますinet_pton(3)-先頭のゼロを8進数のプレフィックスとして解釈しません。

于 2009-06-08T18:31:19.407 に答える
0

どうですか:

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() );
于 2009-06-08T19:21:51.537 に答える