PARSE.C
上传用户:sunrenlu
上传日期:2022-06-13
资源大小:1419k
文件大小:1k
源码类别:

操作系统开发

开发平台:

DOS

  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <ctype.h>
  4. #include <rtos.h>
  5. #include <kconio.h>
  6. #undef word
  7. char *parse_arg( char * source, int word )
  8. {
  9.     int i, len;
  10.     int curword;
  11.     int inspace;
  12.     char *p, *start, ch;
  13.     char *result;
  14.     curword = 0;
  15.     for ( p = source ; (ch = *p) != 0 ; p++ ) {
  16.         if ( isspace( ch ) ) {
  17.             if ( inspace ) {
  18.                 // still in space
  19.             } else {
  20.                 // start of space
  21.                 inspace = 1;
  22.                 // was it the end of the special word
  23.                 if ( curword == word )
  24.                     break;
  25.             }
  26.         } else {
  27.             if ( inspace ) {
  28.                 // start of new word
  29.                 curword ++;
  30.                 len = 1;
  31.                 start = p;
  32.                 inspace = 0;
  33.             } else {
  34.                 // 2nd and other characters
  35.                 len++;
  36.             }
  37.         }
  38.     }
  39.     if ( curword == word ) {
  40.         result = kcalloc( len + 1 , 1 );
  41.         strncpy( result, start, len );
  42.         result[ len ] = 0;
  43.     } else
  44.         result = NULL;
  45.     return( result );
  46. }