我必须将像这样的字符串“ FE80:0000:0000:0000:0000:0000:0000:0000:0012”转换为const uchar * addr,不带“:”。
我尝试了不带“:”的分割字符串,并像矢量一样放置......
vector<string> addressIPv6(string serverIP)
{
istringstream iss(serverIP);
std::vector<string> tokens;
std::string token;
while (std::getline(iss, token, ':')) {
if (!token.empty())
tokens.push_back(token);
}
return tokens;
}
谢谢您的帮助!
答案 0 :(得分:2)
要从字符串中删除设置的字符,可以使用STL算法擦除和删除
std::erase(std::remove(serverIP.begin(), serverIP.end(), ':'), serverIP.end());
然后,您可以使用serverIP.c_str()获取const char *,并在需要时将其副本转换为未签名的char *
https://en.cppreference.com/w/cpp/string/basic_string/c_str