Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 strspn() 함수 완벽 정리: 문자열 접두사 일치 길이 구하기

C 표준 라이브러리 함수 size_t strspn(const char *str1, const char *str2)str1 문자열의 시작 부분부터 str2에 포함된 문자들로만 이루어진 구간의 길이를 계산하여 반환합니다.

C 언어에서 문자(character)들의 배열을 문자열(string)이라고 부릅니다.

문자열 선언 방법

문자열 배열은 다음과 같이 선언합니다.

char stringname [size];

예를 들어 char string[50];은 최대 50자를 저장할 수 있는 문자열 배열입니다.

문자열 초기화 방법

1. 문자 상수를 이용한 초기화

char string[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };

2. 문자열 상수를 이용한 초기화

char string[10] = "Hello";

문자열 접근 − 서식 지정자 %s를 사용하면 널 종료 문자('\0')를 만날 때까지 문자열 전체를 읽거나 출력할 수 있습니다.

strspn() 함수란?

strspn() 함수는 주어진 문자열 안에서 지정한 문자 집합에 속하는 문자들을 검색하고, 처음부터 연속적으로 일치한 문자의 개수를 반환합니다. 즉, 두 번째 문자열에 포함된 문자들이 첫 번째 문자열의 앞부분에서 몇 개나 연속으로 나타나는지 알려주는 함수입니다.

함수 원형(Declaration)

size_t strspn(const char *string1, const char *string2);

각 매개변수의 의미는 다음과 같습니다.

  • string1: 검색 대상이 되는 원본 문자열입니다.
  • string2: 찾고자 하는 문자들의 집합을 담고 있는 문자열입니다.

반환값(Return Value)

string1의 시작 부분에서 string2에 포함된 문자와 연속적으로 일치하는 문자의 개수를 반환합니다. 첫 번째 문자부터 일치하지 않으면 0을 반환합니다.

사용 예제

다음 예제는 strspn() 함수의 사용법을 보여줍니다.

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

int main() {
    int length;
    char string1[20];
    char string2[20];

    printf("enter string1:\n");
    gets(string1);
    printf("enter string2:\n");
    gets(string2);

    /* string1 안에서 string2의 문자들과 일치하는
     * 연속 구간의 길이를 계산합니다.
     * 일치한 문자 개수가 반환됩니다.
     */
    length = strspn(string1, string2);

    printf("The matched char are: %d\n", length);
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

enter string1:
Tutorials
enter string2:
Tutorials Point
The matched char are: 9

위 예제에서 "Tutorials Point"의 각 문자(T, u, t, o, r, i, a, l, s)가 "Tutorials"의 앞부분과 순서대로 모두 일치하므로, 일치한 문자 개수인 9가 출력됩니다.