如何从C语言中的字符串解析IP地址?

如何从C语言中的字符串解析IP地址?,c,parsing,ip,C,Parsing,Ip,我有一个变量,用于保存这些字符集: char recvBuff[1024] = "OK lastname,firstname 127.0.0.1"; 我试图从整个字符串中解析127.0.0.1IP地址,并将其分配给另一个变量。如何从字符串中解析此IP地址? (我不需要127、0、0和1分开。我需要“127.0.0.1”作为一个完整的字符串。您可以使用strtok()或strtok_r()函数来分开字符串 char *strtok(char *str, const char *del

我有一个变量,用于保存这些字符集:

char recvBuff[1024] = "OK lastname,firstname 127.0.0.1";
我试图从整个字符串中解析
127.0.0.1
IP地址,并将其分配给另一个变量。如何从字符串中解析此IP地址? (我不需要127、0、0和1分开。我需要“127.0.0.1”作为一个完整的字符串。

您可以使用
strtok()
strtok_r()
函数来分开字符串

      char *strtok(char *str, const char *delim);

      char *strtok_r(char *str, const char *delim, char **saveptr);

在分离字符串之前,您可以备份字符串,因为它会影响原始字符串。

可能重复的
sscanf
是您的朋友…@sashoalm这是两个不同的问题。我需要完整的IP地址,而不是单独的4个字节。谢谢though@MatteoItalia问题解决:)太好了,谢谢。我必须创建一个token
char*token
,然后在同一行中键入三次才能到达IP地址
token=strtok(recvBuff,“”)(此时令牌位于OK字符处,然后
token=strtok(NULL,”);
(令牌现在是lastname,firstname),最后再次执行相同的操作,使令牌等于IP地址。有没有办法简化此操作?是否使用
“OK lastname,firstname 127.0.0.1”
仅限字符串,否则您将拥有一些其他字符串,最后是
地址