본문 바로가기
프로그래밍언어/C 언어

[혼자 공부하는 C언어] 문자열 길이를 계산하는 strlen 함수

by khsnote22 2022. 12. 10.

http://www.yes24.com/Product/Goods/74269921

 

혼자 공부하는 C 언어 - YES24

혼자 해도 충분하다! 1:1 과외하듯 배우는 C 프로그래밍 자습서이 책은 독학으로 C 언어를 배우는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’ ‘어떻게’ 학

www.yes24.com


문자열을 저장하는 char 배열은 다양한 길이의 문자열을 저장할 수 있도록 충분히 크게 선언해서 사용합니다. 따라서 배열에 저장된 문자열의 길이는 배열의 크기와 다를 수 있습니다. 만약 배열에 저장된 문자열의 실제 길이를 알고 싶으면 strlen 함수를 사용합니다.

 

// 두 문자열 중 길이가 긴 단어 출력

#include <stdio.h>
#include <string.h> // strlen 함수 사용을 위한 헤더 파일 포함

int main(void)
{
	char str1[80], str2[80]; // 두 문자열을 입력할 배열
	char* resp; // 문자열이 긴 배열을 선택할 포인터
	
	printf("2개의 과일 이름 입력 : ");
	scanf("%s%s", str1, str2); // 2개의 문자열 입력
	if (strlen(str1) > strlen(str2)) // 배열에 입력된 문자열의 길이 비교
		resp = str1; // 첫 번째 배열이 긴 경우 선택
	else
		resp = str2; // 두 번째 배열이 긴 경우 선택
	printf("이름이 긴 과일은 : %s\n", resp); // 선택된 배열의 문자열 출력

	return 0;
}

strlen 함수는 배열에 저장된 문자열에서 널 문자가 나올 때까지 문자 수를 세어 반환합니다. 따라서 배열의 크기와는 상관없이 실제 저장된 문자열의 길이를 확인할 수 있습니다. 문자열의 길이를 반환하므로 반환값을 바로 비교하거나 수식의 일부로 사용할 수 있습니다.

 

간혹 sizeof 연산자와 strlen 함수를 혼동하는 경우가 있습니다. sizeof 연산자는 배열에 저장된 문자열 길이와는 상관없이 배열 전체 크기를 계산합니다.

char str[80] = "apple";
printf("%d", sizeof(str)); // 출력 결과는 80
printf("%d", strlen(str)); // 출력 결과는 5