Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- do it c
- 미가공
- Time
- 정처기 독학
- C++
- 핵심 요약
- 유료강좌
- linux
- 도움말
- mysql
- 김성엽
- MyTread
- mfc 실습
- MFC 예제
- MFC
- 정보처리기사
- C언어
- C
- ListBox
- win32
- 마이크로소프트
- 포트폴리오
- MyThread
- tips강좌
- 실습
- Tipsware
- SSG
- visual
- 충무창업큐브
- 별찍기
Archives
- Today
- Total
History
[C언어] 단어 탐색 & 변환기 본문
728x90
반응형
과거 대학시절 과제를 했던 것이 생각나서 한번 글을 써보겠다.
내용
txt 파일에서 탐색할 단어가 몇 번 들어가 있는지 확인하고 입력받은 단어로 변환하는 프로그램을 만든다. 사용자는 사용할 txt 파일의 이름과 검색할 단어를 입력한다. 프로그램은 사용자가 입력한 txt 파일을 열고 처음부터 끝까지 발견한 단어의 수를 출력한다. 이후 검색한 단어를 사용자로부터 입력받은 단어로 변환한다.
결과 예제 화면

내가 제작한 코드는 아래와 같다.
#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
typedef struct ConTent{
char memo[30];
}CT;
CT s[200];
FILE* s1 = NULL;
int load(char* arr, int* count)
{
s1 = fopen(arr, "r+");
if (s1 == NULL) //예외처리
{
printf("파일이 없습니다.\n");
return true;
}
while (fscanf(s1, "%s", s[*count].memo) != EOF)
{
(*count)++;
}
fclose(s1);
return false;
}
int reload(char* arr, int count)
{
s1 = fopen(arr, "w");
if (s1 == NULL) //예외처리
{
printf("파일이 없습니다.\n");
return true;
}
for (int i = 0; i < count; i++){
fprintf(s1, "%s\n", s[i].memo);
}
fclose(s1);
return false;
}
void SetFileString(char *a_arr)
{
const char* temp = ".txt";
char* p= a_arr;
while (*p)p++;
while (*temp)*p++ = *temp++;
*p = NULL;
}
int main()
{
bool check = true;
int count = 0, count2 = 0;
char arr[40], arr3[30], arr4[30];
while (check){
printf("파일이름 : ");
scanf(" %s", arr);
SetFileString(arr); //strcat을 안쓰기 위해
check = load(arr, &count); //파일 동기화
}
check = true;
printf("탐색할 단어 : ");
scanf(" %s", arr3);
printf("변환할 단어 : ");
scanf(" %s", arr4);
printf("-----------------------\n");
for (int i = 0; i < count; i++){
if (!strcmp(arr3, s[i].memo)){
strcpy(s[i].memo, arr4); // 구조체에 변환할 문자를 갱신
count2++; //변환된 문자 카운트
}
}
while (check == true){
check = reload(arr, count); //파일 재 입력
}
printf("정상적으로 파일을 읽었습니다.\n");
printf("해당 파일에서 단어는 총 %d개 입니다\n", count);
printf("해당 파일에서 변환된 단어는 총 %d개 입니다\n", count2);
printf("모든 단어를 변환 완료하였습니다.\n");
}
sample.txt
0.00MB
이 메모장은 대학시절 제출했던 txt파일이다.
728x90
반응형
'C,C++ > 실습 프로그래밍' 카테고리의 다른 글
[c언어]별 찍기2 (0) | 2022.10.22 |
---|---|
[c언어]별 찍기 (0) | 2022.10.22 |
성적기입부 vol_1 (0) | 2021.01.16 |