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

C 언어 strlen() 함수 활용법 – 문자열 길이를 구하는 프로그램 예제


strlen() 함수란?

strlen() 함수는 문자열에 포함된 문자의 개수를 반환하는 C 표준 라이브러리 함수입니다. 단, 문자열의 끝을 나타내는 널 문자('\0')는 길이에 포함되지 않습니다.

문법

int strlen(const char *string);

아래 프로그램은 gets 함수를 사용해 실행 시점에 사용자로부터 이름을 입력받은 후, strlen() 함수로 해당 이름의 길이를 계산하여 출력합니다. strlen() 함수는 정수형 값을 반환하며, 이 반환값은 printf를 통해 화면에 출력됩니다.

예제 1

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

void main() {
    // 문자열과 길이 변수 선언 //
    char name[25];
    int length;
    // 사용자로부터 입력 받기 //
    printf("Enter your name : ");
    gets(name);
    length = strlen(name);
    // 이름과 길이 출력 //
    printf("Your name is : ");
    puts(name);
    printf("Length of the string is : %d\n", length);
}

실행 결과

Enter your name : Tutorialspoint
Your name is : Tutorialspoint
Length of the string is : 14

참고로 gets() 함수는 버퍼 오버플로우 위험 때문에 현재는 사용이 권장되지 않습니다. 실제 프로젝트에서는 fgets()처럼 입력 크기를 제한할 수 있는 안전한 함수를 사용하는 것이 좋습니다.

이번에는 strlen()과 같은 문자열 라이브러리 함수를 사용하지 않고, 반복문만으로 문자열 길이를 직접 계산하는 방법을 살펴보겠습니다. 핵심 원리는 간단합니다. 문자열의 첫 문자부터 시작해 널 문자('\0')를 만날 때까지 인덱스를 하나씩 증가시키면, 반복이 끝난 시점의 인덱스 값이 곧 문자열의 길이가 됩니다.

예제 2

#include <stdio.h>

int main() {
    char string[50];
    int i;
    printf("enter the string: \n");
    scanf("%s", string);
    for (i = 0; string[i] != '\0'; ++i);
    printf("\nLength of the given string is: %d", i);
    return 0;
}

실행 결과

enter the string:
TutorialsPoint
Length of the given string is: 14

두 예제 모두 동일하게 14라는 길이를 출력합니다. strlen() 함수를 사용하면 코드가 간결해지고 가독성이 좋아지며, 반복문을 직접 작성하면 문자열이 메모리에서 어떻게 저장되는지 이해하는 데 도움이 됩니다. 상황에 맞게 두 방식을 활용해 보세요.