텍스트 파일 "sample.s"를 open하여 숫자 단어, 알파벳 단어, 기타 단어 등 총 세 종류의 단어 수를 각각 카운트 하여 출력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include <stdio.h > #include <string.h > #include <stdlib.h > #include <ctype.h > void get_token_num(char *bp); int eng = 0, num = 0, etc = 0; int main() { FILE *fp; char buf[80]; if ((fp = fopen("sample.s", "r")) == NULL) { fprintf(stderr, "file not found...\n"); exit(1); } while (fgets(buf, sizeof(buf), fp) != NULL) { get_token_num(buf); } fclose(fp); printf("영어단어개수 = %d\n숫자단어개수 = %d\n기타단어개수 = %d\n", eng, num, etc); return 0; } void get_token_num(char *bp) { char *cp; int n, n1, n2; for (cp = strtok(bp, " \t\n"); cp != NULL; ) { n = 0, n1 = 0, n2 = 0; for (int i = 0; i < strlen(cp); i ++) { if (isdigit(cp[i])) //숫자면 n 증가 { n += 1; } else if (isalpha(cp[i])) //영어면 n1 증가 { n1 += 1; } else //기타면 n2 증가 { n2 += 1; break; } } if (n ==strlen(cp)) //n이 길이만큼이면 숫자이니 num 카운트 증가 { num += 1; } else if (n1 == strlen(cp))//n1이 길이만큼이면 영어이니 eng 카운트 증가 { eng += 1; } else //n2이 길이만큼이면 숫자이니 etc 카운트 증가 { etc += 1; } cp = strtok(NULL, " \t\n"); } } Colored by Color Scripter | cs |
'대학교 > 3.시스템프로그래밍' 카테고리의 다른 글
시스템 프로그래밍 Project #4 (0) | 2017.11.07 |
---|---|
시스템 프로그래밍 Project #3 (0) | 2017.10.29 |
시스템 프로그래밍 Project #1 (0) | 2017.10.29 |