정성훈
    mystrcmp() 함수의 구현 (추가)
dstruct_mystrcmp 구현.png [13 KB]    




strcmp() 함수는 두 개의 문자열을 비교하는 함수이다.

int mystrcmp(const char* str1, const char* str2);   // 함수의 원형
이 함수를 for 문을 이용하여 직접 구현하시오.  (함수 내에서 strcmp() 함수를 사용하면 안됨!!!)

[구현 방법]

- str1 의 첫번째 문자와 str2 의 첫번째 문자를 빼서 비교함   0 보다 작으면 str1 이 앞에 있는 문자열임으로 -1을 return
                                                                     0 보다 크면 str1 이 뒤에 있는 문자열이므로 +1을 return
                                                                     0 이면 같은 것임으로 다음 문자 비교 반복  

   단, 문자의 경우 unsigned char 로 처리해야 뺀 결과가 정확  (왜 그럴까 생각해 볼 것!!!)
                                                                  
- 이전 문자에서 뺀 값이 0 이면 계속 다음 문자 비교하다가
  str1 에서 추출한 문자도 '\0' 이고 str2 에서 추출한 문자도 '\0' 이면 // 문자열의 끝에는 문자열의 끝을 알리는 NULLL 문자 (숫자 0)이 들어감
  두 문자열은 같은 것임으로 0을 return 

 
  


mystrcmp() 함수를 이용하여 과제에서 수행한 아래 구조체를 이름으로 정렬하는 프로그램을 작성하시오.

typedef struct student_info {
    char    name[10];
    int     height;
    float   weight;
} student_info;

student_info students[N_STUDENTS] = {
    {"이순신", 172, 83.4},
    {"홍길동", 167, 72.5},
    {"김유신", 159, 70.8},
    {"유관순", 163, 58.4}
};

 

  등록일 : 2023-10-22 [18:49] 조회 : 256 다운 : 46   
 
△ 이전글실습 프로그램 예)
▽ 다음글실습 프로그램 예)
자료구조 실습게시판
번호 제 목 이름
[참고] 교재에 있는 소스코드
28       └❸ 실습 프로그램 예) 정성훈
27          └❹ mystrcmp() 함수의 구현 (추가) 정성훈
26             └❺ 실습 프로그램 예) 정성훈
25 (실습 4) 동적 메모리할당 정성훈
24 └❶ 실습 프로그램 예) 정성훈
23    └❷ 실습 프로그램 예) 정성훈
22       └❸ malloc 2차원 배열 할당 (추가) 정성훈
21          └❹ 실습 프로그램 예) 정성훈
20 (실습 3) swap 함수와 배열 다루기 정성훈
19 └❶ 실습 프로그램 예) 정성훈
18    └❷ 실습 프로그램 예) 정성훈
17       └❸ 구조체 데이터의 swap (추가) 정성훈
16          └❹ 실습 프로그램 예) 정성훈
15 (실습 2) 순환 정성훈
14 └❶ 실습 프로그램 예) 정성훈

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