c·c++/c 프로그래밍

.smi 파일에서 영어만 추출하기.

바로이순간 2012. 6. 11. 11:42

#include <stdio.h>

int is_english(char *s) {

    int i, cnt;

    if(s[0]=='&') return 0;

    i=0;  cnt=0;

    while(s[i]) { if(s[i]<0) ++cnt; i=i+1; }

    if(i<2) return 0;

    if(cnt<8) return 1;

    else return 0;

}

int main() {

    FILE *fin;

    FILE *fout;

    char buf[1000];

    char newbuf[1000];

    char *bp, *np;


    fin=fopen("data.txt", "r");

    if(fin==NULL) {

        printf("파일을 읽을수 없습니다.");

        return 1;

    }

    fout=fopen("new.txt","w");


    while(!feof(fin)) {

        fgets(buf, 999, fin);

        bp=buf;

        np=newbuf;

        while(*bp) {

            if((*bp)!='<') *np++=*bp++;

            else {

                bp++;

                while((*bp)!='>') bp++;

                bp++;

            }

        }

        *np=0;

        if(is_english(newbuf)) fputs(newbuf, fout);

        buf[0]=0;

        newbuf[0]=0;

    }

    *np=0;

    if(is_english(newbuf)) fputs(newbuf, fout);


    fclose(fin);

    fclose(fout);


    return 0;

}

'c·c++ > c 프로그래밍' 카테고리의 다른 글

한줄의 단어를 역순으로 출력하기  (0) 2012.06.13
수치해석-뉴톤메쏘드  (0) 2012.06.13
threaded binary tree  (0) 2012.06.09
scanf_s 의 사용법  (0) 2012.06.09
중위표현을 후위표현으로  (0) 2012.06.07