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: 5strlen()을 사용하려면 프로그램 상단에 <string.h> 헤더를 포함해야 합니다. 이 함수는 문자열을 인자로 받으며 널 종료 문자(null terminator) 이전의 문자 수를 나타내는 정수를 반환합니다.
이 함수는 문자열이 차지하는 공간을 알아야 하거나, 입력 길이를 검증하거나, 문자열 크기에 의존하는 작업을 수행해야 할 때 특히 유용합니다. 이는 C 프로그래밍에서 가장 일반적으로 사용되는 문자열 함수 중 하나입니다.
챌린지
쉬움입력으로부터 여러 단어를 읽고 strlen() 함수를 사용하여 그 길이를 분석하는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다:
- 처리할 단어의 개수를 나타내는 정수
n을 읽습니다. n개의 각 단어에 대해:- 단어를 저장하기 위해 50개의 요소를 가진 문자 배열을 선언합니다.
scanf를 사용하여 단어를 읽습니다.strlen()을 사용하여 단어의 길이를 계산합니다.- 지정된 형식으로 단어와 그 길이를 출력합니다.
- 모든 단어를 처리한 후, 모든 단어의 총 문자 수를 계산하고 출력합니다.
- 가장 긴 단어의 길이를 찾아 출력합니다.
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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.