C 언어에서 문자열(string)은 사실 널(null) 문자 '\0'으로 끝나는 1차원 문자 배열입니다. 즉, 널 종단(null-terminated) 문자열은 문자열을 구성하는 문자들 뒤에 널 문자가 이어지는 형태를 가집니다.
문자열의 길이를 구하려면 반복문을 사용하여 문자열의 처음부터 시작해 '\0' 문자를 만날 때까지 각 문자를 하나씩 세어야 합니다.
예시
입력 − naman
출력 − 문자열 길이는 5
설명 − 문자열의 각 인덱스를 순서대로 순회하며, 문자열의 끝을 의미하는 널 문자 '\0'에 도달할 때까지 반복합니다.
예제 코드
#include <stdio.h>
#include<string.h>
int main() {
char string1[]={"naman"};
int i=0, length;
while(string1[i] !='\0') {
i++;
}
length=i;
printf(" string length is %d",length);
return 0;
}
출력 결과
string length is 5
strlen() 함수 활용하기
위 예제처럼 반복문을 직접 작성하지 않고도, C 표준 라이브러리의 <string.h> 헤더에 포함된 strlen() 함수를 사용하면 문자열의 길이를 간편하게 구할 수 있습니다.
#include <stdio.h>
#include <string.h>
int main() {
char string1[] = "naman";
int length = strlen(string1);
printf("string length is %d", length);
return 0;
}
strlen() 함수는 널 문자를 제외한 실제 문자 개수를 반환하므로, 코드가 더 간결하고 가독성이 좋아집니다. 다만 문자열 길이를 계산하는 원리 자체를 이해하려면 위의 반복문 방식을 함께 익혀두는 것이 좋습니다.