Я думаю, вы могли бы использовать strtok
, который разбивает строку на пакеты, разделенные определенными символами, в вашем случае символ новой строки:
void foo(char *str)
{
char *line = strtok(str, "\n");
while(line)
{
//work with line, which contains a single line without the trailing '\n'
...
//next line
line = strtok(NULL, "\n");
}
}
Но имейте в виду, что это изменяет содержимое str
(оно фактически заменяет '\n'
s на '\0'
s), поэтому вы можете захотеть сделать его копию заранее, если вам это понадобится в дальнейшем.