C语言读取文本内容并分割到指定文本解决方案

C语言读取文本内容并分割到指定文本
例如有一个txt,里面有规律地存了一些字符串

set xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
       xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxx 
set xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
       xxxxxxxxxxxxxxxxxxx  xxxxxxxxxxxxxxx
       xxxxxxxxxxxxxxxxxxxxxx
       xxxxxxxxxxxxxxxxxxxxxxx
 set  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

现在就想从第一个set(包括set)开始读取直到遇到下一个set,然后再从第二个set开始(包括set)直到下一个set,按此类推,一个set就写入一个文件,请问该怎么写呢?
------解决思路----------------------
这样可好:

#include <stdio.h>
#include <string.h>
FILE *f, *fset;
char name[10];
char buf[256];
int i;
int main(void)
{
if (NULL == (f = fopen("1.txt", "r")))
{
fprintf(stderr, "Unable to open file!\n");
return 1;
}
i = 1;
sprintf(name, "set%d.txt", i++);
if (NULL == (fset = fopen(name, "w")))
{
fprintf(stderr, "Unable to open file!\n");
return 1;
}
while (1)
{
if (NULL == fgets(buf, 255, f)) break;
if (strstr(buf, "set"))
{
fclose(fset);
sprintf(name, "set%d.txt", i++);
if (NULL == (fset = fopen(name, "w")))
{
fprintf(stderr, "Unable to open file!\n");
return 1;
}
}
fprintf(fset, "%s", buf);
}
fclose(f);
return 0;
}