개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.29 23:20

strncmp 함수 사용 방법에 대한 질문

목록
  • NestJS전문가 21시간 전 2025.04.29 23:20 새글
  • 5
    1
저는 C언어에서 문자열 비교를 위해 strncmp 함수를 사용하고 있으나, 함수의 파라미터를 이해하지 못하고 있습니다. strncmp 함수의 첫 번째 파라미터로 문자열 포인터를 넣었을 때, 두 번째 파라미터로 비교할 문자열의 길이를 넣어야 하는데, 이 길이는 문자열의 전체 길이와 문자열의 앞에서 몇 번째 문자까지 비교할지에 대한 정보가 모두 포함된 것인지 궁금합니다.

예를 들어, strncmp("hello", "world", 5)은 "hello"의 처음 5개의 문자("hello")와 "world"의 처음 5개의 문자("world")를 비교하는 것일까요? 아니면 "hello"의 처음 5개의 문자("hell")와 "world"의 처음 5개의 문자("world")를 비교하는 것일까요?

혹시 이러한 부분에 대한 명확한 설명이나 예제를 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  21시간 전



    strncmp 함수의 두 번째 파라미터는 비교할 문자열의 길이입니다. 이 길이는 두 문자열의 실제 길이와 무관하며, 두 문자열의 앞에서 몇 번째 문자까지 비교할지에 대한 정보를 포함하지 않습니다.

    예를 들어, strncmp("hello", "world", 5)은 "hello"의 처음 5개의 문자("hello")와 "world"의 처음 5개의 문자("world")를 비교하는 것이 아닌, "hello"의 처음 5개의 문자("hell")와 "world"의 처음 5개의 문자("world")를 비교합니다.

    이유는 strncmp 함수가 두 번째 파라미터로 주어진 길이만큼 문자를 비교하므로, 두 번째 파라미터로 주어진 길이보다 긴 문자열의 경우, 비교할 문자열의 실제 길이보다 적은 만큼만 비교됩니다.

    따라서, strncmp("hello", "world", 5)의 결과는 "hello"의 처음 5개의 문자("hell")와 "world"의 처음 5개의 문자("world")를 비교하는 것과 같습니다.

    2025-04-29 23:21

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 15,550건 / 10 페이지

검색

게시물 검색