오늘은 strcmp함수를 직접 구현해보겠습니다.
strcmp함수는 두 문자열을 비교하는 함수로 <string.h> 헤더파일에 선언되어있습니다.
strcmp(문자열1, 문자열2) 형태로 사용할 수 있습니다.
아스키코드를 기준으로 문자열1 > 문자열2 이면 1을 반환하고,
문자열1 < 문자열2 이면 -1을 반환하고,
문자열1 = 문자열2 이면 0을 반환합니다.
strcmp(문자열 포인터1, 문자열 포인터2) 형태로 사용할 수 있도록 구현해보겠습니다.
#include <stdio.h>
//strcmp 함수 구현
int string_compare(char* s1, char* s2) {
while (*s1 != '\0' || *s2 != '\0') {
if (*s1 > *s2)
return 1;
else if (*s1 < *s2)
return -1;
else {
s1++;
s2++;
}
}
return 0;
}
//string_compare 함수 호출
void main() {
char* sen1 = "aaa";
char* sen2 = "aaa";
char* sen3 = "aab";
char* sen4 = "aac";
printf("%d\n", string_compare(sen1, sen2));
printf("%d\n", string_compare(sen2, sen3));
printf("%d\n", string_compare(sen4, sen3));
}
strcmp(문자배열1, 문자배열2) 형태로 사용할 수 있도록 구현해보겠습니다.
#include <stdio.h>
//strcmp 함수 구현
int string_compare(char s1[], char s2[]) {
int i = 0;
while (s1[i] != '\0' || s2[i] != '\0') {
if (s1[i] > s2[i])
return 1;
else if (s1[i] < s2[i])
return -1;
else
i++;
}
return 0;
}
//string compare 함수 호출
void main() {
char sen1[256] = "aaa";
char sen2[256] = "aaa";
char sen3[256] = "aab";
char sen4[256] = "aac";
printf("%d\n", string_compare(sen1, sen2));
printf("%d\n", string_compare(sen2, sen3));
printf("%d\n", string_compare(sen4, sen3));
}
[c언어] strcpy 함수 구현 (0) | 2021.10.28 |
---|---|
[c언어] strcat 함수 구현하기 (0) | 2021.10.27 |
[c언어] strlen 함수 구현하기 (0) | 2021.10.25 |
[c언어] 코딩도장 71.11 파일을 읽은 뒤 거꾸로 저장하기 문제풀이 (0) | 2021.07.22 |
[c언어] 코딩도장 71.9 파일 크기만큼 파일 읽기 문제풀이 (0) | 2021.07.21 |
댓글 영역