[C++]14 C++ 문자열 길이 파악하는 라이브러리 사용하기(strlen,strnlen)
안녕하세요 고급개발자가 꿈인 코린이 입니다.
오늘은 c++에서 문자열 길이 파악하는 방법에 대해서 포스팅 하겠습니다.
문자열길이 파악하는 라이브러리는 strlen과 strnlen등이 있습니다.
가끔 프로그래밍을 하다보면 문자열 길이를 파악해야 할때가 많습니다. 이럴때 strlen 과 strnlen등을 사용해야하는데
이차이에 대해서 포스팅을 하겠습니다.
#include <string.h>
size_t strlen ( const char * str );
#include <string.h>
size_t strnlen (const char *s, size_t maxlen)
위에 처럼 strlen는 char형 변수를 인자로 넣어주고 strnlen은 size_t 변수도 넣습니다.
strlen은 문자열을 넣어주면 길이는 리턴해주고 strnlen은 문자열과 맥스 값을 넣어주어서 문자열의 길이가 맥스값을
넘으면 맥스값을 리턴하고 문자열의 길이가 맥스값을 안넘으면 문자열의 길이를 리턴 해 줍니다.
아래의 코드를 보면서 설명 드리겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include "ServiceClass.h"
#include <string.h>
ServiceClass::ServiceClass()
{
const char * str1 = "Hello world";
function_Strlen(str1);
function_Strnlen(str1);
}
ServiceClass::~ServiceClass()
{
}
void ServiceClass::function_Strlen(const char *str1)
{
std::cout << "####function_Strlen called str1: " << str1 << std::endl;
size_t size = strlen(str1);//문자열의 길이를 리턴
std::cout << "####function_Strlen called size: " << size << std::endl;
}
void ServiceClass::function_Strnlen(const char *str1)
{
std::cout << "@@@@function_Strnlen called str1: " << str1 << std::endl;
size_t size = strnlen(str1,10);//문자열의 길이가 맥스값을 넘으면 맥스 값을 맥스값을 넘지 않으면 문자열의 길이를 리턴
std::cout << "@@@@function_Strnlen called size: " << size << std::endl;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
str1: Hello world
위의 코드는 11자리 문자열인 Hello world를 사용해서 strlen과 strnlen을 사용한 내용 입니다.
맥스값을 10으로 지정하니 strnlen은 10을 출력하고 있는것을 확인할수 있습니다.
그리고 이번에는 아래 처럼 Hello를 넣어서 출력내용을 보겠습니다.
str1: Hello
이번에는 넣어준 값이 맥스 값을 넘지 않기 때문에 문자열의 길이인 5를 출력하는 것을 볼수가 있습니다.
그리고 지난 포스팅과 마찬가지로 strlen 과 strnlen은 null값을 넣에되면 앱이 죽거나 프로그램이 바로 종료 됩니다.
그렇기 때문에 null값을 체크하고 null값이 아닐때만 실행이 될수있도록 하면 아주 좋은 코드가 됩니다.
이점 꼭 기억하시기 바랍니다.
여기 까지 문자열 길이를 출력하는 내용을 포스팅 했습니다.
읽어주셔서 감사합니다.!!
'C++ > C++심화' 카테고리의 다른 글
[C++]16. int형 데이터를 string 형 데이터로 변경(int to string) (0) | 2020.04.11 |
---|---|
[C++]15 C++ 뒤에서 부터 특정 문자를 찾아서 그 문자부터 문자열 출력하기 (strrchr,memchr) (0) | 2019.11.24 |
[C++]13 C++ 문자열 비교 하는 라이브러리 사용하기(strcmp,strncmp) (0) | 2019.11.02 |
[C++]12. C++ 소스코드에서 linux 명령어 실행 하는 방법 (0) | 2019.10.20 |
[C++]11. 프로세스와 스레드(멀티 프로세싱? 멀티 스레드?) (0) | 2019.09.29 |