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가 출력됩니다.