unsigned short octet2, octet3, octet4;
sscanf(ipAddr.c_str(), "%hu.%hu.%hu.%hu", &octet2, &octet2, &octet3, &octet4);
ipAddr是一个字符串。
从上面的代码中,它成功地打破了八位字节。但是,我想避免触及IP地址的第一个八位字节。我想避免两次写入octet2的额外操作。
例如,使用IP地址1.2.3.4,我会将IP地址分解为2,然后是3,然后是4,而不会触及1.
我的操作将完成超过一百万次,除非有比sscanf更好的方法,请告诉我。
答案 0 :(得分:3)
你可以通过*
前面的第一个格式说明符来扫描但不存储第一个参数,告诉sscanf
解析但不存储字段(在这种情况下你只需要3个参数):< / p>
sscanf(ipAddr.c_str(), "%*hu.%hu.%hu.%hu", &octet2, &octet3, &octet4);