strlen
-
strlen 함수를 만들어보자Programming/C,C++,C# 2007. 11. 25. 23:58
strlen함수는 문자열의 길이를 구하는 함수입니다. 문자열은 아시다시피 맨끝에 NULL ( 0 )값이 들어갑니다. strlen은 문자열의 처음부터 NULL이 위치한 곳까지를 세는것이죠.. int myStrlen(char* str) { int length = 0; while(str[length] != 0) length++; return length; } 위처럼 아주 단순한 내용입니다. str이라는 문자열을 받아 str[length]번째가 NULL이 아닐때까지 문자의 갯수를 세는것입니다. [프로그래밍/C/C++] - strcpy 함수를 만들어보자
-
strlen 사용시 주의사항Programming/C,C++,C# 2007. 11. 18. 23:13
strlen을 이용하여 문자열의 길이를 구하는 경우가 상당히 많다.. strlen을 이용하여 문자열 포인터로 길이를 구할때 주의해야 할 점이 있다.. char* str = NULL; int len = 0; len = strlen(str); 위와 같이 str이 NULL인 경우 프로그램은 그냥 죽어버린다. 원인은 strlen함수가 자체적으로 문자열이 널포인터인지를 검사하지 않기때문에 생기는 문제이다. 물론 위와 같이 NULL인 str의 길이를 구하려는 사람은 없지만.. 실질적으로 함수가 중간에 끼고 코드의 양이 커질때 위와 같은 문제를 만날때가 적어도 한번은 있을것이다.. 어쩌면 너무 쉽게 생각해서 그냥 지나치는 경우도 많다.. 아무튼 strlen을 사용할때는 문자열포인터가 널값이 아닌지를 꼭 한번 체크해주..