정성훈
    (예비 1) 문자열 처리 함수
r01.png [14 KB]    




(예비 1) 문자열 처리 함수  (네이버 검색해서 프로그램 찾지 말고 직접 프로그래밍할 것)

 

내용: 다음과 같이 문자열을 처리하는 함수를 작성하시오.

 

        1) 문자열의 길이를 리턴한다.

                예)  char test[20] = "abcd";

                      n = strlen(test);  // n 에는 4가 들어간다.

 

        2) 문자열을 copy 한다.

                예) char test1[20], test2[20] = "hello world";                   

                     strcpy(test1, test2);   // test1 에 "hello world" 가 들어간다.

 

        3) 첫번째 문자열에 두번째 문자열을 합친다.

                예) char str1[20] = "hi", str2[20] = " hansung";

                      strcat(str1,str2);   // str1이  "hi hansung" 가 된다.

 

추가:

 

        *) 문자열 비교는 strcmp(test1, test2) 는 위의 1,2,3을 완성한 학생만 해볼 것

              - 알파벳 순서로 test1이 test2 보다 앞에있으면 차이만큼 음수, 뒤에 있으면 차이만큼 양수, 두개의 문자열이 같으면 0을 리턴

                 예) char t1[20] = "comm1", t2[20] = "comm2";

                      n = strcmp(t1, t2);   // n 에는 -1이 들어간다.

 

                참고: strcmp 는 이름을 정렬할 때 사용할 수 있음

 

        **) 혹은 특정 문자열이 발생하는지를 찾아내고 발생하면 그 위치를 리턴하는 함수를 작성해 볼 것

                  예) char longstr[40] = "Do your best !!!", word[10] = "your";

                        n = strstr(longstr, word);  // your가 시작되는 위치 3을 리턴함, 만약 없으면 -1을 리턴

 

                 참고: strstr 는 전화번호관리에서 이름이나 전화번호가 일부만 일치하더라도 찾아주는 기능에 사용할 수 있음

                          typedef struct phonebook {

                                  char name[10];   // name

                                  char phone[20];  // phone number

                          } phonebook;

                          phonebook mybook[10] = { {"홍길동","010-1234-5678"},

                                                                    {"김철수","010-3456-1111"},

                                                                    {"양귀비","010-5634-2390"},

                                                                    {"김철호","019-1111-2222"},

                                                                    {"박찬호","011-3434-1290"}};

                           위와같은 전화번호부에서

                                          1) 이름으로 정렬하여 출력하시오.

                                          2) 이름에 "김철"이 들어간 사람을 모두 출력하시오.

                                          3) 전화번호에서 1111 이 있는 모든 사람을 출력하시오. 

                        

 

      - 기존 string 라이브러리에 동일한 함수가 구현되어 있으므로 이를 피하기 위해서는

         mystrlen(), mystrcpy(), mystrcmp(), mystrstr() 등으로 함수 이름 앞에 my를 붙일 것

 

      * 기존 string.h 에 있는 함수를 사용하지 말고 for loop를 사용해서 직접 구현하는 것임

 

 

              

  등록일 : 2012-05-14 [15:16] 조회 : 2720 다운 : 601   
 
△ 이전글테스트 중
▽ 다음글힌트1 - strlen 구현 예)
자료구조 실습게시판
번호 제 목 이름 조회 등록일
교재 프로그램 참고 다운로드 안될 때
68 (임시) 이중 포인터의 이해 실습 정성훈 292 11-21
67 (임시) 단순연결 리스트 insert_node 집중 분석 실습 정성훈 395 11-21
66 교재 프로그램 참고 다운로드 안될 때 실습 정성훈 748 10-03
65 테스트 중 실습 정성훈 1714 11-08
64 (예비 1) 문자열 처리 함수 실습 정성훈 2720 05-14
63 └❶ 힌트1 - strlen 구현 예) 계속 정성훈 1997 06-05
62 └❶ l실습 프로그램 예) 비공개 계속 정성훈 170 05-14
61 (실습 12) 로또 조합 생성기 실습 정성훈 3268 05-26
60 └❶ 실습 프로그램 예) 비공개 계속 정성훈 94 05-26
59 (실습 11) 시뮬레이션 실습 정성훈 8883 05-23
58 └❶ 추가 1)의 결과화면 예 계속 정성훈 1866 06-03
57    └❷ 추가 2)의 결과화면 예 계속 정성훈 1682 06-03
56 └❶ 실습 프로그램 예) 비공개 계속 정성훈 303 05-23
55    └❷ 실습 프로그램 예2) 비공개 계속 정성훈 147 06-03
54 (실습 10) 미로찾기 실습 정성훈 5594 05-15

[1][2][3][4][5]