strlen 문자열 길이
- 프로그래밍/C/C++
- 2018. 7. 1.
strlen 문자열 길이
이번에는 strlen 문자열 길이 알아내는 법을 알아보겠다.
strlen 함수를 쓰기 위해서는 string.h 파일을 include 해야 된다.
이 함수 사용법을 알아보자.
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> #include <string.h> int main() { char array1[] = "Hello C"; char array2[] = "안녕하세요"; printf("영문 문자열의 길이 : %d \n", strlen(array1)); printf("한글 문자열의 길이 : %d \n", strlen(array2)); return 0; } | cs |
< 출력 >
영문 문자열의 길이 : 7
한글 문자열의 길이 : 10
string.h 헤더 파일을 include 해주고 각 변수에는 데이터가 들어가 있다.
printf로 strlen(array1)을 넣어서 문자열의 길이를 알려준다.
영문자는 한 글자에 1바이트이고 한글은 한 글자에 2바이트이다. 사용법은 간단하다.
그럼 strlen 함수가 어떻게 동작하는지 함수의 원형을 알아보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> size_t strlen_my(const char* s) { unsigned int count = 0; while (*s) s++, count++; return count; } int main() { char array1[] = "Hello C"; char array2[] = "안녕하세요"; printf("영문 문자열의 길이 : %d \n", strlen_my(array1)); printf("한글 문자열의 길이 : %d \n", strlen_my(array2)); return 0; } | cs |
< 출력 >
영문 문장열의 길이 : 7
한글 문자열의 길이 : 10
함수의 원형을 보면 size_t 함수의 반환형이라고 적혀있다.
size_t는 unsigned int를 typedf를 해서 size_t라고 설정을 해놨다.
다시 말해 typedf unsigned int size_t라고 정의를 내린 것이다.
그리고 매개변수에는 const char* s이다 값이 변경되지 않게끔 const 키워드로 정의를 내려줬다.
그다음 반복문을 돌려서 s 변수가 '\0'를 만날 때까지 반복문을 돌리게 해놨다.
s++로 한 바이트씩 이동을 한다. 이동할 때마다 count++을 해줌으로써 글자 수가 몇 개인지 알려주고 반환을 해준다.