일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 언제나 휴일
- 알고리즘
- 캡슐화
- 표준 라이브러리 함수
- Windows Forms
- 동영상
- 원격 제어 프로그램
- 파이썬
- 소스 코드
- 졸업 작품 소재
- 산책하기 좋은 곳
- 네트워크 프로그래밍
- 충남 천안
- 무료 동영상 강의
- 언제나휴일
- 실습으로 다지는 c#
- 소켓 통신
- 클래스 다이어그램
- 유튜브 동영상 강의
- 추천
- 졸업 작품
- 안드로이드 앱 개발
- 동영상 강의
- C++
- c언어
- 프로젝트
- 표준 입출력
- 강의
- c#
- 실습
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
strcmp 함수 [C언어 표준 라이브러리 함수] 본문
int strcmp ( const char * str1, const char * str2 ); 문자열을 비교하는 함수
입력 매개 변수 리스트
str1 비교 대상 문자열
str2 비교 대상 문자열
반환 값
같을 때 0, str1이 크면 양의 정수, str2가 크면 음의 정수
strcmp 함수는 사전식으로 문자열을 비교합니다. 사전식 비교란 앞에서 부터 비교하면서 차이가 있는 부분이 있으면 그 부분의 문자의 차이로 비교하는 것을 말합니다. 예를 들어 abcd와 abd를 비교하면 세번째 문자에서 차이가 발생하고 c가 d보다 작으므로 abcd가 abd보다 작다고 판단하는 것을 말합니다.
사용 예
//C언어 표준 라이브러리 함수 가이드
//int strcmp ( const char * str1, const char * str2 ); 문자열을 비교하는 함수
//문자열 배열에서 같은 이름을 찾아서 출력
#include <string.h>
#include <stdio.h>
int ehstrcmp(const char *str1, const char *str2)
{
//*str1이 참이면서 *str1과 *str2가 같으면 str1과 str2를 다음 위치로 이동하는 것을 반복
for (; *str1 && (*str1 == *str2); ++str1, ++str2);
return *str1 - *str2;//*str1과 *str2의 차이를 반환
}
int main (void)
{
char names[5][20]={"홍길동","강감찬","을지문덕","이순신","유관순"};
char query[20] = "";
int i=0,ecount=0;
printf("검색할 이름 : ");
scanf_s("%s",query,sizeof(query));//검색할 이름 입력
ecount = sizeof(names)/sizeof(names[0]);//원소의 개수 계산
printf("== strcmp 함수 이용 ==\n");
for(i=0; i< ecount;i++)
{
if(strcmp(names[i],query)==0)//같은 문자열을 찾을 때
{
break;//반복문 탈출(i가 ecount보다 작음)
}
}
if(i<ecount)//i가 ecount보다 작으면
{
printf("인덱스 %d 에 %s 이(가) 있습니다.\n",i, query);//찾은 결과 출력
}
else
{
printf("%s 는(은) 없습니다.\n",query);
}
printf("== ehstrcmp 함수 이용 ==\n");
for (i = 0; i< ecount; i++)
{
if (ehstrcmp(names[i], query) == 0)
{
break;
}
}
if (i<ecount)
{
printf("인덱스 %d 에 %s 이(가) 있습니다.\n", i, query);
}
else
{
printf("%s 는(은) 없습니다.\n", query);
}
return 0;
}
출력
검색할 이름 : 이순신(입력)
== strcmp 함수 이용 ==
인덱스 3 에 이순신 이(가) 있습니다.
== ehstrcmp 함수 이용 ==
인덱스 3 에 이순신 이(가) 있습니다.
'C & C++ > C언어 표준 라이브러리 함수' 카테고리의 다른 글
strncat 함수, strncat_s 함수 [C언어 표준 라이브러리 함수] (0) | 2024.02.20 |
---|---|
strcat 함수, strcat_s 함수 [C언어 표준 라이브러리 함수] (0) | 2024.02.20 |
strncmp 함수 [C언어 표준 라이브러리 함수] (1) | 2024.02.19 |
strncpy 함수, strncpy_s 함수 [C언어 표준 라이브러리] (0) | 2024.02.19 |
strcpy 함수, strcpy_s 함수 [C언어 표준 라이브러이] (0) | 2024.02.16 |
strlen 함수 [C언어 표준 라이브러리] (1) | 2024.02.15 |
STRING.H [C언어 표준 라이브러리] (0) | 2024.02.15 |
fsetpos 함수 [C언어 표준 라이브러리 함수] (1) | 2024.02.14 |