[C언어][초급] Chapter46. 문자열 함수 – strlen 함수로 문자열 길이 재기
C언어에서는 문자열을 다루기 위한 여러 가지 함수들이 존재합니다.
그중 가장 기본적인 함수가 strlen입니다. 이 함수는 문자열의 길이를 재는 데 사용됩니다.
strlen 함수는 문자열의 문자 개수를 반환합니다. 단, 문자열 끝의 널 문자('\0')는 포함하지 않습니다.
● strlen 함수 사용법
#include <string.h>
int len = strlen("Hello");
결과는 5입니다. Hello에는 문자 5개가 있고 널 문자는 제외됩니다.
● 문자열 변수에 적용
char name[] = "Alice";
int len = strlen(name);
문자열이 저장된 변수에 대해서도 동일하게 사용할 수 있습니다.
● strlen과 배열 크기의 차이
char str[20] = "Hi";
- strlen(str): 결과는 2 (H, i)
- sizeof(str): 결과는 20 (배열 전체 크기)
strlen은 실제 문자 개수를 알려주고, sizeof는 메모리 크기를 알려줍니다.
● strlen 사용 시 주의
- 널 문자('\0')가 없으면 strlen은 멈추지 않아 오류가 날 수 있습니다.
- 반드시 문자열이 정상적으로 종료되어 있어야 합니다.
strlen 함수는 문자열 처리의 기초입니다.
문자열을 다룰 때 크기나 길이 비교, 조건 판단 등에 자주 활용되므로 잘 익혀두세요.
● 실습 문제
문제 1
문자열 "banana"의 길이를 strlen으로 구해 출력하세요.
문제 2
사용자로부터 문자열을 입력받아 해당 문자열의 길이를 출력하세요.
문제 3
strlen과 sizeof의 차이를 설명하고, 각각 어떤 경우에 쓰는지 예시를 드세요.
문제 4
배열 char word[100]에 "C programming"을 저장했을 때 strlen 결과는?
문제 5
strlen을 사용할 때 주의해야 할 점 한 가지를 작성하세요.
▶ 정답 확인하기
정답 1
#include <string.h>
printf("%lu\n", strlen("banana"));
정답 2
char str[100];
scanf("%s", str);
printf("길이: %lu\n", strlen(str));
정답 3
strlen: 실제 문자열의 길이 (문자 수)
sizeof: 배열 전체의 메모리 크기
예: char str[20] = "Hi"; → strlen은 2, sizeof는 20
정답 4
strlen 결과는 12입니다. 공백 포함한 글자 수만큼 반환되며, 널 문자는 제외됩니다.
정답 5
문자열 끝에 널 문자가 없으면 strlen은 멈추지 않아 잘못된 결과를 내거나 오류가 발생합니다.