일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 언제나 휴일
- 네트워크 프로그래밍
- 독립기념관
- c언어
- 클래스 다이어그램
- 무료 동영상 강의
- 유튜브 동영상 강의
- 충남 천안
- 실습으로 다지는 c#
- 원격 제어 프로그램
- 표준 입출력
- 표준 라이브러리 함수
- 안드로이드 앱 개발
- 언제나휴일
- c#
- 프로젝트
- 동영상 강의
- 졸업 작품 소재
- 소켓 통신
- 실습
- 산책하기 좋은 곳
- 소스 코드
- 파이썬
- 캡슐화
- 강의
- 알고리즘
- Windows Forms
- C++
- 추천
- 동영상
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
[C언어 소스] 문자열 비교하는 함수 만들기 본문
알고리즘
문자열 비교하기(str1:비교 대상 문자열1, str2: 비교 대상 문자열 2)
….반복(str이 가리키는 문자가 참이면서 str1과 str2가 가리키는 문자가 서로 같으면)
………str1과 str2를 다음 위치로 이동
….str1과 str2가 가리키는 문자의 차이 반환
소스코드
//문자열 비교하는 함수 만들기
#include <stdio.h>
//사전식 비교: 사전에 앞에 나오는 단어가 작고 뒤에 나오는 단어가 크다고 판별
//차이가 없으면 0 반환
int mystrcmp(const char *str1, const char *str2);
int main(void)
{
char names[5][20] =
{
"홍길동","강감찬","이순신","을지문덕","한석봉"
};
char name[20];
int i = 0;
int value;
printf("검색할 이름 :");
scanf_s("%s", name, sizeof(name));
printf("사전식 비교: 사전에 앞에 나오는 단어가 작고 뒤에 나오는 단어가 크다고 판별\n");
for (i = 0; i<5; i++)
{
value = mystrcmp(name, names[i]);
if (value == 0)//차이가 없을 때
{
printf("인덱스 %d에서 %s를 찾았습니다. \n", i, name);
}
else
{
if (value>0)
{
printf("%s > %s \n", name, names[i]);
}
else
{
printf("%s < %s \n", name, names[i]);
}
}
}
return 0;
}
int mystrcmp(const char *str1, const char *str2)
{
//str1이 가리키는 문자가 종료 문자나 str1과 str2가 가리키는 문자가 다를 때까지 반복
for (; *str1 && (*str1 == *str2); str1++, str2++);
return *str1 - *str2;
}
언제나휴일 여행 및 산책
'C & C++ > C언어 예제 및 소스' 카테고리의 다른 글
[C언어 소스] 부분 문자열 복사하는 함수 만들기(버퍼 오버플로우 방지) (0) | 2025.01.09 |
---|---|
[C언어 소스] 부분 문자열 복사하는 함수 만들기 (0) | 2025.01.09 |
[C언어 소스] 문자열 복사하는 함수 만들기(버퍼 오버플로우 방지) (0) | 2025.01.09 |
[C언어 소스] 문자열 복사하는 함수 만들기 (0) | 2025.01.09 |
[C언어] n 개의 정수 중에 홀수의 합계 구하는 함수 만들기 (0) | 2025.01.08 |
[C언어 소스] 속이 빈 삼각형 출력 (0) | 2025.01.08 |
[C언어 소스] 산봉우리 출력 (0) | 2025.01.08 |
[C언어 소스] 숫자 피라미드 (0) | 2025.01.08 |