Я должен сделать одно предположение, так как с кодом существует ряд проблем: Предполагается, что буфер [c] является первым символом перед адресом inet
if (buffer[c] == ' ')
{
in_addr_t addr
if (inet_aton(&buffer[c+1], &addr))
// do stuff
}
Примечание:
inet_aton
устарела, поскольку не поддерживает ipv6. Используйте int inet_pton(int af, const char *src, void *dst);
для прямой совместимости.
- Правка -
Чтобы перевести подстроку с начала buffer
в (но не включая) buffer[c]
, подойдет любая из этих:
1
char buf2 [MAX];
strncpy (buf2, buffer, c);
buf2 [c] = '\000';
2
char buf2 [MAX];
sprintf (buf2, "%.*s", c, buffer);
3
char buf2 [MAX];
int j;
for (j = 0; j < c; ++j)
buf2 [j] = buffer [j];
buf2 [c] = '\000';