2008년 11월 19일
[C언어 예제] 문자열의 길이를 리턴하는 함수
strlen()함수를 구현해 보자
인자값으로 문자열의 포인터가 들어가고 리턴값으로 문자열의 길이가
나오게된다.
<정석으로 짜기>
------------------------------------------------
int j_strlen(char *str)
{
char *p;
int len=0;
p = (char *)str;
while(*p!=NULL)
{
len++;
p++;
}
return len;
}
<야매로 짜기>
---------------------------
int j_strlen(char *str)
{
int len=0;
while(*str != NULL)
len++;
return len;
}
인자값으로 문자열의 포인터가 들어가고 리턴값으로 문자열의 길이가
나오게된다.
<정석으로 짜기>
------------------------------------------------
int j_strlen(char *str)
{
char *p;
int len=0;
p = (char *)str;
while(*p!=NULL)
{
len++;
p++;
}
return len;
}
<야매로 짜기>
---------------------------
int j_strlen(char *str)
{
int len=0;
while(*str != NULL)
len++;
return len;
}
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- C언어 예제7 by 유니콘
- C 포인터, 확실히 알자(3) - 문자열과 포인터 by 시즈하
- 버츄얼 소멸자 - 오류 있다 by AshyStorm
- [C 프로그래밍] 문자열함수 strtok(), strchr(), strstr() by 가시고기
- [PHP]문자열 다루는 방법 by BombFox
# by | 2008/11/19 17:48 | │ C언어 예제 | 트랙백 | 덧글(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
오히려 위에 코드가 이상해요.
p = (char *)str; 이 부분은 str 자체가 이미 char* 형인데 왜 형변환이 해줬는지..
그리고 str의 값을 왜 보존시킬려고 하는지...어차피 호출할 프로그램의 포인터는
변경시키지 않을 텐데요...
그리고 밑에거는
int my_strlen(char* str){
int len = 0;
while(*str++ != '\0')
len++;
return len;
}