我試圖將字符串轉換爲IP地址。輸入字符串是一個轉換爲std::string
的無符號整數,例如"123456"
。 下面的代碼不正確,因爲它會產生不可讀的二進制字符。將字符串轉換爲IP地址時輸出錯誤
std::string str2IP(const std::string& address)
{
uint32_t ip = std::strtoul(address.c_str(), NULL, 0);
unsigned char bytes[4];
bytes[0] = ip & 0xFF;
bytes[1] = (ip >> 8) & 0xFF;
bytes[2] = (ip >> 16) & 0xFF;
bytes[3] = (ip >> 24) & 0xFF;
std::stringstream ss;
ss << bytes[3] << "." << bytes[2] << "." << bytes[1] << "." << bytes[0];
return ss.str();
}
您輸入了什麼輸出?你對這個輸入有什麼期望的輸出? (另外,你爲什麼要輸出字符?) –