카테고리 없음
Assignment 06 - Programming for Word Counting
Theo Kim
2010. 11. 11. 21:44
#include<stdio.h> #include<string.h> void __cdecl makeDelimiter(char[], int*); void __cdecl printInfo(void); int main(int argc, char *argv[]) { auto int iCount = 0; auto int arrayIndex = 0; auto int wordCount = 0, totalCount = 0; auto FILE *input = NULL; auto char line[1024] = { 0 }; auto char *token = NULL; auto char delimiter[100] = { 0 }; auto char temp[1] = { 0 }; printInfo(); if(argc != 3) { printf("Not Working!"); return 0; } makeDelimiter(delimiter, &arrayIndex); input = fopen(argv[2], "rt"); if(input) { while(!feof(input)) { fgets(line, 1024, input); token = strtok(line, delimiter); if(!token) continue; else totalCount++; if( !_stricmp(token, argv[1]) ) wordCount++; while(token != NULL) { token = strtok(NULL, delimiter); if(!token) break; else totalCount++; if( !_stricmp(token, argv[1]) ) wordCount++; } } } else { printf("Not Working!"); return 0; } printf("%d/%d", wordCount, totalCount); fclose(input); return 0; } ///////////////////////////////////////////////////////////////// // 함 수 : printInfo() // ============================================ // 입 력 : 없음 // 출 력 : 없음 // 목 적 : 학생 정보 출력 ///////////////////////////////////////////////////////////////// void __cdecl printInfo(void) { printf("********************\n"); printf("* Assignment 06\n"); printf("* Name: Kim, Jin-Uk\n"); printf("* ID: 20040998\n"); printf("********************\n"); } ///////////////////////////////////////////////////////////////// // 함 수 : makeDelimiter(char del[], int *index) // ============================================ // 입 력 : 토큰 단위로 구분할 문자들의 집합, 그 집합의 인덱스 // 출 력 : 없음 // 목 적 : 숫자, 영문 소문자, 영문 대문자들을 제외한 문자들의 집합 구성 ///////////////////////////////////////////////////////////////// void __cdecl makeDelimiter(char del[], int *index) { auto int iCount = 0; for(iCount = 1; iCount < 128; iCount++) if(!((iCount >= 48 && iCount <= 57) || (iCount >= 65 && iCount <= 90 ) || (iCount >= 97 && iCount <= 122))) del[(*index)++] = iCount; } <SPAN id=tx_marker_caret></SPAN>