컴퓨터/프로그래밍

C언어 strcspn 함수 문자열에서 특정 문자가 포함되지 않는 문자열 길이 구하기

2020. 3. 11. 22:06

C strcspn() 문자열에서 특정 문자가 포함되지 않는 문자열 길이를 구하기 함수

문자열에서 지정된 문자들이 없는 초기 문자열의 길이를 검색합니다.

  • 헤더: string.h
  • 형태: size_t strcspn(const char *s1, const char *s2)
  • 인수: char *s1 검색 대상 문자열
    char *s2 검색에 사용되는 문자들의 모임
  • 반환: size_t 문자열의 길이를 반환합니다.

strcspn()은 strspn()과 정 반대로 검색 대상의 문자열에 대해 첫번째 바이트부터 차례 대로 검색하면서 두번째 인수의 문자열에 포함되는 문자인지를 확인합니다. 그러다가 2번째 인수에 포함되는 문자를 만나면 그 전까지의 문자열 길이를 반환합니다.

예로, strspn()을 사용해서 "jwmx-badayak.com" 에 대해 아래와 같이 검색한다면,

strspn( "jwmx-badayak.com", "umybj-wxf");

"jwmx badayak.com"의 첫번째 문자인 'j'부터 'b'까지는 두번째 인수인 "umybj-wxf"에 포함됩니다. 그러나 a는 포함되지 않으므로 "jwmx-b"에 대한 6이 됩니다.

strcspn( "jwmx-badayak.com", "uzyba-ntf");

첫번째 문자부터 "jwmx"는 2번째 문자열 "uzyba-ntf"에 포함되지 않지만 "-"가 포함되므로 "jwmx"에 대한 4가 반환됩니다.

C언어 strcspn() 함수 예제

#include <stdio.h>
#include <string.h>

int main( void)
{
   char   *str = "jwmx-badayak.com";

   printf( "%lu\n", strcspn( str, "uzyba-ntf"));
  
   return 0;
}

C언어 strcspn() 예제 실행 결과

]$ ./a.out
4
]$