background image

static char stbuf[256]; 

strncpy(stbuf, str + start, n); 

stbuf[n] = 0; 

return stbuf; 

/* 

 

主程序 */ 

int main(int argc, char** argv) 

char * pattern; 

int x, z, lno = 0, cflags = 0; 

char ebuf[128], lbuf[256]; 

regex_t reg; 

regmatch_t pm[10]; 

const size_t nmatch = 10; 

/* 编译正则表达式*/ 

pattern = argv[1]; 

z = regcomp(?, pattern, cflags); 

if (z != 0){ 

regerror(z, ?, ebuf, sizeof(ebuf)); 

fprintf(stderr, "%s: pattern '%s' \n",

ebuf, pattern); 

return 1; 

/* 

 

逐行处理输入的数据 */ 

while(fgets(lbuf, sizeof(lbuf), stdin))

++lno; 

if ((z = strlen(lbuf)) > 0 && lbuf[z-1]