반응형
#if 1
/*
txt파일a,b,c 3개열고a에단어최대10개, 단어길이는20자로제한,
b에는검출대상단어를입력하고제한없음,
c에는 a에있는데b에등록안된단어를저장함.
*/
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
int check_word(char aword[10][20], char bword[20], int cnt)
{
int i=0;
for (i = 0; i < cnt i++) {
if (!(strncmp(aword[i], bword, strlen(aword[i]) - 1))) {
printf("\n동일단어검출!\n");
return 0;
}
}
return 1;
}
int main(void)
{
FILE* afp, *bfp, *cfp;
char aword[10][20] = { 0 };//최대단어10개, 단어길이20자
char temp[20] = { 0 };
char bword[100][20] = { 0 };//단어갯수제한없음, 단어길이20자
char cword[100][20] = { 0 };//단어갯수제한없음, 단어길이20자
int i = 0, j = 0, k = 0;
afp = fopen("a.txt", "r");
bfp = fopen("b.txt", "a+");
cfp = fopen("c.txt", "a+");
if (afp == NULL|| bfp == NULL|| cfp == NULL)printf("안열림");//file이하나라도안열리면에러메세지출력
else//file이정상적으로열렸다면다음동작수행
{
while (feof(afp) == 0) {//일단a.txt부터읽고aword 배열에저장
fgets(*(aword + i), 20, afp);
printf("%s", *(aword + i));
i++;
}
while (1)
{
printf("\nenter english word(END): ");
scanf("%s", temp);
if (strcmp(temp, "END") == 0) {//사용자입력이END나오면bword에서END 없애고탈출
break
}
else {//안나왔으면해당내용을b.txt파일에입력해줌
if (check_word(aword, temp, i))//만약입력받은단어가aword 내에 단어라면i는a단어수카운터
{
strcpy(*(bword + j), temp);
fputs(*(bword + j), cfp);//사용자의입력을받은bwrod의문자열을b.txt에넣어줌
fputs("\n", cfp);//그다음포인트에바로\n넣어줘서enter가되도록!!
}
strcpy(*(bword + j), temp);
fputs(*(bword + j), bfp);//사용자의입력을받은bwrod의문자열을b.txt에넣어줌
fputs("\n", bfp);//그다음포인트에바로\n넣어줘서enter가되도록!!
j++;
}
}
fseek(cfp, 0, SEEK_SET);
while (feof(cfp) == 0) {//일단a.txt부터읽고aword 배열에저장
fgets(*(cword+k), 20, cfp);
printf("%s", *(cword + k));
k++;
}
fclose(afp);
fclose(bfp);
fclose(cfp);
}
}
#endif
중요한 점은 이 코드가 위치하는 폴더 내에 a,b 텍스트 파일이 있어야 한다는 점이다.
반응형
'C Programming' 카테고리의 다른 글
[C] 2023년 달력 출력하기 (1) | 2023.10.14 |
---|---|
[C] 공용체를 활용한 비트 연산 (0) | 2023.10.14 |
[C]구조체 사용하기 (2) | 2023.10.14 |
[C]실수 값 오름차순 정렬 (0) | 2023.10.14 |
[C]대소문자 변환 프로그램 (0) | 2023.10.14 |