스토퍼 검색
본 자료는 6페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
해당 자료는 6페이지 까지만 미리보기를 제공합니다.
6페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

스토퍼 검색에 대한 보고서 자료입니다.

본문내용

1;
list->string[list->size] = GetMemory( NULL, length );
(void)memcpy( list->string[list->size], string, length );
list->size++;
} /* StrListAppend */
◎ 스트링 리스트 끝에 파일의 모든 라인을 위치 시킨다.
void
StrListAppendFile( list, filename )
StrList list;
char *filename;
{
FILE *file;
char buffer[MAX_LINE];
int length;
register int i;
<표준 매개변수 체크>
if ( !list || !filename ) return;
<본문 입력 파일을 열러 에러를 조사한다.>
if ( NULL == (file = fopen(filename,"r")) ) return;
<에러를 조사하고 리스트에 추가시킨다.>
while ( NULL != fgets(buffer,MAX_LINE,file) )
{
if ( (list->size == list->max_size) && !ExpandArray(list) ) return;
i = list->size;
length = strlen( buffer );
list->string[i] = GetMemory( NULL, (unsigned)length );
if ( NULL == list->string[i] ) return;
(void)memcpy( list->string[i], buffer, length );
list->string[i][length-1] = EOS;
list->size++;
}
<본문 입력 파일을 닫는다.>
(void)fclose( file );
} /* StrListAppendFile */
◎ 새로운 스트링 리스트 구조를 할당하고 추가한다.
StrList
StrListCreate()
{
StrList list;
<스트링 리스트 오브젝트에 공간 할당>
if ( !(list = (StrList)GetMemory(NULL,sizeof(StrListStruct))) )
return( NULL );
<구조를 초기화한다.>
list->string = NULL;
list->size = list->max_size = 0;
if ( !ExpandArray(list) )
{ FreeMemory( (char *)list ); return( NULL ); }
<새로운 스트링 리스트를 리턴한다.>
return( list );
} /* StrListCreate */
◎ 스트링 리스트를 위해 사용되는 공간을 제거
void
StrListDestroy( list )
StrList list;
{
register int i;
<표준 매개변수 체크>
if ( !list ) return;
<모든 공간 제거>
for ( i = 0; i < list->size; i++ ) FreeMemory( (char *)(list->string[i]) );
FreeMemory( (char *)list );
} /* StrListDestroy */
◎ 두개의 리스트가 같은 요소를 갖는지 확인한다.
int
StrListEqual( list1, list2 )
StrList list1,list2;
{
register int i;
<매개변수가 나쁘다면 같지 않다.>
if ( !list1 || !list2 ) return( FALSE );
<크기가 다르면 같지 않다.>
if ( list1->size != list2->size ) return( FALSE );
<리스트 요소를 비교한다.>
for ( i = 0; i < list1->size; i++ )
if ( *(list1->string[i]) != *(list2->string[i]) )
return( FALSE );
else if ( 0 != strcmp(list1->string[i],list2->string[i]) )
return( FALSE );
<모든것을 조사하고 동등한지 봐라>
return( TRUE );
} /* StrListEqual */
◎ 리스트에 스트링 색인을 붙인다.
char *
StrListPeek( list, index )
StrList list;
int index;
{
<표준 파라미터 체크>
if ( !list || (index < 0) || (list->size <= index) ) return( NULL );
<요청된 스트링을 리턴한다.>
return( list->string[index] );
} /* StrListPeek */
◎ 리스트 크기를 할당
int
StrListSize( list )
StrList list;
{
if ( !list ) return( 0 ); else return( list->size );
} /* StrListSize */

void
StrListSort( list )
StrList list;
{
<정렬에서 매개변수를 체크한다.>
if ( !list ) return;
QSort( list->string, 0, list->size-1 );
} /* StrListSort */
◎ strcmp를 사용하는 스트링 리스트를 분류하고 동의어를 삭제한다.
void
StrListUnique( list )
StrList list;
{
register i,j;
<파라미터를 체크한다.>
if ( !list ) return;
<리스트를 정렬한다.>
QSort( list->string, 0, list->size-1 );
<스트링 동의어를 제거한다.>
if ( 1 < list->size )
{
for ( j = 0, i = 1; i < list->size; i++ )
{
if ( 0 == strcmp(list->string[i],list->string[j]) )
(void)free( list->string[j] );
else
j++;
if ( j < i ) list->string[j] = list->string[i];
}
list->size = j + 1;
}
} /* StrListUnique */

키워드

추천자료

  • 가격2,300
  • 페이지수19페이지
  • 등록일2005.10.24
  • 저작시기2005.10
  • 파일형식한글(hwp)
  • 자료번호#316616
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니