Учитывая, что все это находится в буфере char [], в который вы можете писать (т.е. содержимое будет перезаписано), вы можете сделать что-то вроде:
char *nick, *username, *server, *command, *channel, *message;
nick = strtok(buffer+1, "!");
username = strtok(NULL, "@");
server = strtok(NULL, " ");
command = strtok(NULL, " ");
channel = strtok(NULL, " ");
message = strtok(NULL, "");
Вам необходимо добавить ошибкупроверка по вышеуказанному коду, так как любой вызов strtok () может вернуть NULL, если токенов больше не найдено.Вы также можете использовать более сложный синтаксический анализ или sscanf ().
Прочитать страницы о strtok (3) и sscanf (3) .