프로그래밍 언어 C에서 두 문자열을 비교합니다.

작가: Judy Howell
창조 날짜: 27 칠월 2021
업데이트 날짜: 10 할 수있다 2024
Anonim
[혼자 공부하는 C언어] 16 문자열을 비교하는 strcmp 함수
동영상: [혼자 공부하는 C언어] 16 문자열을 비교하는 strcmp 함수

콘텐츠

문자열 길이 비교는 어떤 문자열이 더 많은 문자를 포함하는지 알아낼 수 있기 때문에 C 프로그래밍 언어에서 일반적으로 사용되는 함수입니다. 이것은 데이터 정렬에 매우 유용합니다. 문자열 비교에는 특수 기능이 필요합니다. 사용하지 마십시오 : != 또는 ==.

단계로

  1. C에서 문자열을 비교할 수있는 두 가지 함수가 있습니다. 둘 다 string.h>코드 라이브러리.
    • strcmp () -이 함수는 두 문자열을 비교하여 문자 수의 차이를 반환합니다.
    • strncmp () -이것은 또한 적용됩니다 strcmp (), 이것이 첫 번째 인 것을 제외하고 문자를 비교합니다. 오버플로 충돌을 방지하는 데 도움이되므로 더 안전한 것으로 간주됩니다.
  2. 필요한 라이브러리로 프로그램을 실행하십시오. 두 라이브러리가 있습니다. stdio.h>string.h> 프로그램에 필요할 수있는 다른 라이브러리와 함께 필요합니다.

    #include stdio.h> [[이미지 : C 프로그래밍 1 단계 버전 4.webp에서 두 문자열 비교 | center]] #include string.h>

  3. 하나 시작하십시오.int함수. 이것은 두 문자열의 길이를 비교하는 정수를 반환하므로이 함수를 배우는 가장 쉬운 방법입니다.

    [[이미지 : C 프로그래밍 2 단계 버전 4.webp에서 두 문자열 비교 | center]] #include stdio.h> [[이미지 : C 프로그래밍 3 단계 버전 3.webp에서 두 문자열 비교 | center]] #include string. h> int 메인 () {}

  4. 비교할 두 문자열을 결정하십시오. 이 예에서는 두 데이터를 비교합니다. 문자열. 또한 반환 값을 정수로 결정해야합니다.

    [[이미지 : C 프로그래밍 4 단계 버전 4.webp에서 두 문자열 비교 | center]] #include stdio.h> [[이미지 : C 프로그래밍 5 단계 버전 4.webp에서 두 문자열 비교 | center]] #include string. h> int main () {char * str1 = "사과"; char * str2 = "주황색"; int ret;}

  5. 비교 기능을 추가하십시오. 두 개의 문자열을 정의 했으므로 이제 비교 함수를 추가 할 수 있습니다. 우리는 간다 strncmp () 따라서 측정 할 문자 수가 함수 내에 설정되어 있는지 확인해야합니다.

    [[이미지 : C 프로그래밍 6 단계에서 두 문자열 비교 버전 4.webp | center]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "주황색"; int ret; ret = strncmp (str1, str2, 11); / * 최대 11 자 길이의 두 문자열 비교 * /}

  6. 사용하다.다른 경우라면비교를 수행합니다. 이제 함수를 만들었으므로 다른 경우라면 어떤 문자열이 더 긴지 확인합니다. strncmp () 준다 0 결과적으로 문자열의 길이가 같으면 str1이 더 길면 양수이고 str2가 더 길면 음수입니다.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "주황색"; int ret; ret = strncmp (str1, str2, 11); if (ret> 0) {printf ( "str1은 더 길다"); } else if (ret 0) {printf ( "str2가 더 길다"); } else {printf ( "두 문자열이 동일합니다"); } 반환 (0); }

경고

  • 문자열이 같으면 반환 값은 0입니다. 0도 FALSE의 값이기 때문에 혼란 스러울 수 있습니다.