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

C 언어 strlen 함수 완벽 가이드 – 문자열 길이 구하는 방법

C 언어 strlen 함수란?

C 표준 라이브러리 함수 size_t strlen(const char *str)은 문자열 str의 길이를 계산합니다. 이때 문자열의 끝을 나타내는 널 종료 문자('\0')는 길이에 포함되지 않습니다.

여러 개의 문자(character)가 모여 이루어진 배열을 문자열(string)이라고 부릅니다.

문자열 선언

문자열 배열은 다음과 같은 형식으로 선언합니다.

char stringname [size];

예를 들어 char a[50];은 최대 50자 길이의 문자열을 저장할 수 있는 배열을 의미합니다.

문자열 초기화

방법 1. 단일 문자 상수 사용

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

방법 2. 문자열 상수 사용

char a[10] = "Hello";

접근(Accessing): 제어 문자열 "%s"를 사용하면 printf나 scanf 함수에서 '\0'을 만날 때까지 문자열 전체를 출력하거나 입력받을 수 있습니다.

strlen() 함수의 역할

strlen() 함수는 문자열의 길이, 즉 문자열에 포함된 문자의 개수를 반환합니다. 이 함수를 사용하려면 반드시 헤더 파일 <string.h>를 소스 코드에 포함해야 합니다. 참고로 strlen의 반환형은 실제로 부호 없는 정수 타입인 size_t입니다.

문법

strlen() 함수의 기본 문법은 다음과 같습니다.

int strlen (string name)

예제 프로그램 1

다음 프로그램은 strlen() 함수의 기본적인 사용법을 보여줍니다.

#include <string.h>
main(){
    char a[30] = "Hello";
    int l;
    l = strlen(a);
    printf("length of the string = %d", l);
    getch();
}

실행 결과

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

length of the string = 5

참고: 널 문자 "\0"은 하나의 문자로 계산되지 않으므로, "Hello"의 길이는 5가 됩니다.

예제 프로그램 2

이번에는 서로 다른 방식으로 초기화한 두 문자열의 길이를 구하는 C 프로그램입니다.

#include<stdio.h>
#include<string.h>
int main(){
    int str1, str2;
    // 문자열 초기화
    char string1[] = "Welcome To";
    char string2[] = {'T','U','T','O','R','I','A','L','\0'};
    // 두 문자열의 길이 계산
    str1 = strlen(string1);
    str2 = strlen(string2);
    printf("string1 length is: %d \n", str1);
    printf("string2 length is: %d \n", str2);
}

실행 결과

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

string1 length is: 10
string2 length is: 8

"Welcome To"는 공백을 포함하여 총 10자이며, 문자 배열로 초기화한 "TUTORIAL"은 8자입니다. 두 경우 모두 문자열의 끝을 알리는 널 문자 '\0'은 길이 계산에서 제외됩니다.

정리

strlen() 함수는 문자열의 길이를 셀 때 널 문자('\0')를 만나기 직전까지의 문자 개수만 반환합니다. 문자열을 다루는 대부분의 C 프로그램에서 필수적으로 사용되는 함수이므로, 선언·초기화 방법과 함께 정확한 동작 원리를 기억해 두는 것이 좋습니다.