Menu
Coddy logo textTech

strlen() 사용하기

Coddy C 여정의 Logic & Flow 섹션에 포함된 레슨 — 63개 중 15번째.

사용자 입력으로부터 문자열을 읽는 방법을 배웠지만, 이제는 그 문자열의 길이를 확인하는 방법이 필요합니다. C는 특히 이 목적을 위해 <string.h> 라이브러리에서 strlen() 함수를 제공합니다.

strlen() 함수는 문자열의 문자 수를 세며, 널 종료 문자 \0에 도달하면 멈춥니다. 중요한 점은, 카운트에 널 종료 문자를 포함하지 않는다는 것입니다. 즉, 실제 보이는 문자들만 셉니다.

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

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // 출력: Length: 5

strlen()을 사용하려면 프로그램 상단에 <string.h> 헤더를 포함해야 합니다. 이 함수는 문자열을 인자로 받으며 널 종료 문자(null terminator) 이전의 문자 수를 나타내는 정수를 반환합니다.

이 함수는 문자열이 차지하는 공간을 알아야 하거나, 입력 길이를 검증하거나, 문자열 크기에 의존하는 작업을 수행해야 할 때 특히 유용합니다. 이는 C 프로그래밍에서 가장 일반적으로 사용되는 문자열 함수 중 하나입니다.

challenge icon

챌린지

쉬움

입력으로부터 여러 단어를 읽고 strlen() 함수를 사용하여 그 길이를 분석하는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다:

  1. 처리할 단어의 개수를 나타내는 정수 n을 읽습니다.
  2. n개의 각 단어에 대해:
    • 단어를 저장하기 위해 50개의 요소를 가진 문자 배열을 선언합니다.
    • scanf를 사용하여 단어를 읽습니다.
    • strlen()을 사용하여 단어의 길이를 계산합니다.
    • 지정된 형식으로 단어와 그 길이를 출력합니다.
  3. 모든 단어를 처리한 후, 모든 단어의 총 문자 수를 계산하고 출력합니다.
  4. 가장 긴 단어의 길이를 찾아 출력합니다.

strlen() 함수를 사용하기 위해 <string.h> 헤더를 포함하는 것을 잊지 마세요.

출력은 다음 형식으로 결과를 표시해야 합니다:

Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]

예를 들어, 입력이 다음과 같다면:

3
hello
programming
C

출력은 다음과 같아야 합니다:

Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11

이 챌린지는 strlen()을 사용하여 문자열 길이를 측정하고, 루프를 사용하여 여러 문자열을 처리하며, 문자열 길이 데이터를 기반으로 계산을 수행하는 능력을 테스트합니다.

치트 시트

<string.h>strlen() 함수는 널 종료 문자 \0를 제외한 문자열의 문자 수를 셉니다:

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

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // 출력: Length: 5

이 함수는 문자열을 인자로 받아 널 종료 문자 이전의 가시적인 문자 수를 나타내는 정수를 반환합니다.

직접 해보기

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

int main() {
    // 단어의 개수를 읽습니다
    int n;
    scanf("%d", &n);
    
    // 합계를 추적하기 위한 변수들
    int total_characters = 0;
    int max_length = 0;
    
    // TODO: 여기에 코드를 작성하세요
    // 루프를 사용하여 각 단어를 처리합니다
    // 각 단어에 대해:
    // - 50개의 요소를 가진 문자 배열을 선언합니다
    // - scanf를 사용하여 단어를 읽습니다
    // - strlen()을 사용하여 길이를 계산합니다
    // - 단어와 그 길이를 출력합니다
    // - total_characters와 max_length를 업데이트합니다
    
    // 최종 결과 출력
    printf("Total characters: %d\n", total_characters);
    printf("Longest word length: %d\n", max_length);
    
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨