레포트샵

fileicon[C언어] 문자열 연결, 입력, 비교, 탐색 함수 제작

이전

  • icon

다음

  • 최대 100페이지까지 확대보기 서비스를 제공합니다.

> 레포트 > 공학계열 > 자료상세보기 (자료번호:181044)

구매가격
1,200원 할인쿠폰1,080원
등록/수정
2007.11.07 / 2007.11.08
파일형식
fileiconzip(압축파일) [무료뷰어다운]
페이지수
7페이지
자료평가
평가한 분이 없습니다.
등록자
lhil008
  • 다운로드
  • 장바구니 담기

닫기

이전큰이미지 다음큰이미지
  • 트위터
  • 페이스북
신규가입 200원 적립! + 10% 할인쿠폰 3장지급! banner구매자료를 평가하면 현금처럼 3%지급!

소개글

[C언어] 문자열 연결, 입력, 비교, 탐색 함수 제작에 대한 자료입니다.

목차

#define MAX 20

int _strlen(char a[]); // 문자열 길이
int _strfind1(char a[], char b); // 원하는 문자 찾기
void _strcpy(char a[], char b[]); // 문자열 복사
void _strcat(char a[], char b[], char c[]); // 문자열 연결
int _strcmp(char a[], char b[]); // 문자열 비교
int _strfind2(char a[], char b[]); // 문자열 탐색
void _strget(char a[]); // 문자열 입력

본문내용

Ⅰ. 문제의 제기
헤더 파일은 직접 정의하여 사용할 수 있으며, 이때는 ""를 이용해서 소스에 포함시켜 주어야 한다. 이번 리포트에서는 헤더 파일에 문자열과 관련된 함수들을 정의하고 소스 파일에서 끌어 쓰도록 프로그램을 구현한다. 헤더 파일에는 문자열에서 문자열을 검색하는 함수, 두 문자열을 비교하는 함수, 두 문자열을 연결하는 함수가 포함되어야 한다. 문자열을 검색하는 함수의 경우는 검색할 문자열을 찾아내기 위한 반복문 이용 방식을 결정하여야 하며, 문자열을 비교하는 경우는 어떤 경우들이 동일하지 않은 문자열 인지 생각해 보아야한다. 또한 문자열을 연결하는 함수는 저장할 문자열의 인덱스를 어떻게 유지해 줄지를 생각해 보아야 한다. 아래서부터 이런 문제점을 중심으로 프로그램을 구현해 본다.
※ 작성된 프로그램의 전체 소스 #붙임1 (main.cpp, myString.h)

Ⅱ. 문제해결의 방식 및 알고리즘 구현
1. 프로그램 설명
헤더 파일에 문자열에서 문자열 검색, 두 문자열 비교, 두 문자열 연결 함수를 포함시켜 프로그램을 구현한다. 또한 기존 제작한 문자열 길이, 문자열 복사, 문자 검색 함수도 헤더 파일에 선언하여 준다.

2. 문제해결 접근 방식
(1) 문자열 연결 함수의 제작 문제
두 문자열을 연결하기 위해서는 첫 문자열을 저장하고 난 후 두 번째 문자열을 저장할 때 저장되는 배열의 인덱스를 어떻게 유지할 지를 생각해야 한다. 만약 저장하는 문자열과 동일한 인덱스를 사용한다면 연결되지 않고 두 번째 문자열만 남을 것이기 때문이다. 따라서 저장 배열의 인덱스를 따로 유지해주어야 하며, 이는 새로운 카운터 변수를 선언하는 것으로 해결 할 수 있을 것이다.

(2) 문자열 비교 함수의 제작 문제
문자열을 비교하는 함수는 동일한 경우 1, 다른 경우 0을 리턴하는 방식으로 구현되어야 한다. 이때 다른 경우는 어느 때인지를 생각해야하는데, 기본적으로 다른 문자가 포함된 경우가 포함된다. 이는 두 배열의 동일 인덱스 상의 데이터를 비교하여 다른 경우 0을 리턴하는 방식으로 구현 할 수 있을 것이다. 또 하나 생각해야 하는 것은 두 문자열의 길이가 다른 경우이다. 짧은 문자열과 긴 문자열은 앞부분이 동일하고 남는 부분이 동일하지 않도록 인식되어야 한다. 따라서 다른 문자 검색이 끝난 후 두 문자열 중 하나라도 NULL에 도달하지 않았다면 0을 리턴하는 방식으로 이를 해결해야 한다. 이 두가지 경우에 해당되지 않는 경우는 1을 리턴하여 준다.

(3) 문자열을 검색하는 함수의 제작 문제
문자열에서 문자열을 검색하는 함수는 검색할 문자열을 어떻게 다룰 것인지 생각해야 한다. 우선 검색할 문자열이 기존 문자열 보다 길다면 무조건 검색 실패를 리턴한다. 그외의 경우는 기존 문자열의 인덱스를 증가시키면서 검색하면 될 것이다. 이때 검색할 문자열의 카운터는 따로 만들어야하며, 다른 문자를 만날때마다 0으로 초기화 시켜주어야 한다. 같은 문자열을 만나고 카운터를 증가한 것이 검색할 문자열의 길이와 동일하다면 검색성공을 리턴한다. 리턴은 기존 문자열에서 검색한 문자열의 시작 인덱스를 해주어야 하므로 검색할 문자열 카운터를 현재 인덱스에서 뺀 후 리턴하면 될 것이다.

3. 알고리즘 구현
(1) 문자열 연결 함수의 알고리즘
위 검토한 바에 따라 알고리즘을 작성하면 우선 두 개의 카운터가 필요할 것이며, 그중 하나는 저장할 배열의 인덱스를 제어할 것이다. 첫 문자열을 저장하고 난 후에도 저장 배열의 인덱스는 초기화 시키지 않으며 두 번째 문자열까지 저장된 후에는 0을 저장해야 할 것이다. 이와 같은 내용을 간략히 나타내면 다음과 같다.

ⅰ. cnt1, cnt2을 0으로 초기화
ⅱ. cnt1이 첫 배열의 길이보다 크거나 같을 때까지 c[cnt2]에 저장 후 cnt1, cnt2 증가
ⅲ. cnt1을 0으로 초기화
ⅳ. cnt1이 두 번째 배열의 길이보다 크거나 같을 때까지 c[cnt2]에 저장 후 cnt1, cnt2 증가
ⅴ. c[cnt2]에 0을 저장

(2) 문자열 비교 함수의 알고리즘
문자열의 비교 함수는 두 문자열의 길이를 모두 알아야 하며, 이를 lena, lenb라고 한다. 문자열 a와 b의 현재 값이 다른 경우는 0을 바로 리턴하며, 현재 인덱스가 lena 또는 lenb 보다 크거나 같아지면 반복문을 멈춘다. 반복문을 멈춘 당시 두 배열 중 하나라도 0이 아니라면 0을 리턴하고 그렇지 않으면 1을 리턴한다. 이를 간략히 나타내면 아래와 같다.
ⅰ. cnt가 lena 또는 lenb 보다 작은 경우 반복문을 계속한다.
ⅱ. a[cnt]와 b[cnt]가 다르면 0을 리턴하고, 아니면 cnt를 증가시킨 후 ⅰ로 돌아간다.
ⅲ. a[cnt], b[cnt] 중 하나라도 0이 아니라면 0을 리턴하고, 그렇지 않으면 1을 리턴한다.

태그 strcat, strcmp, strfind, 문자열비교, 문자열함수

자료평가

아직 평가한 내용이 없습니다.

오늘 본 자료

  • 오늘 본 자료가 없습니다.
  • img

    저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하 며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객 센터에 신고해 주시기 바랍니다.