문자열 함수에 인자 전달시 src, dest 위치
글쓴이: imgromit / 작성시간: 금, 2006/01/27 - 1:14오후
안녕하세요...
upper라는 문자열 함수(대문자 변환)를 만들고자 합니다...
함수 선언을 어떻게 하는게 좋은지 고민이 되어서 글을 올렸습니다.
1. char *str_upper(char *str)
2. char *str_upper(char *dest, const char *src)
3. char *str_upper(const char *src, char *dest)
1의 방식은 인자를 바로 대문자로 변경하는 것이고,
2,3 은 변환전, 변환후의 두개의 변수를 넘기는 것인데, in, out 의 파라미터 순서가 변경되어 있습니다.
검색결과 일반적으로 1의 방식을 많이 사용하는 것같으며,
2/3 에서 선택해야 한다면, 3의 방식보다는 2의 방식이 일반적인 문자열 함수(strcpy, strcat, sprintf ... )에 많이 쓰이는 방식 같은데...
어떻게 선언하는게 일반적일까요?
새해 복 많이 받으세요...
Forums:
1
2번과 3번중에 고르자면 당연 2번입니다.
c라이브러리에서는 destination이 앞에오는게 일반적입니다.
source을 앞에놓으면 뒤죽박죽된 소스를 느끼실 수 있을겁니다 --a
안정성을 고려하신다면 strn_upper도 만드시는 것도 고려해보세요
2번으로 하시되, dest와 src가 같을 경우도 고려하시면 좋을 것 같
2번으로 하시되, dest와 src가 같을 경우도 고려하시면 좋을 것 같습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
Re: 문자열 함수에 인자 전달시 src, dest 위치
정도면 어떨까 싶습니다.
- 토끼군
만약 dest 버퍼크기도 추가한다면, 어디에 위치하는것이 좋을까요?
만약 dest 버퍼크기도 추가한다면, 어디에 위치하는것이 좋을까요?
[code:1]char *str_upper(char *dest,
char *str_upper(char *dest, const char *src, size_t num)
이런식으로 하는게 좋지 않을까 싶습니다. C Standard Library에서는 다 저런 식이더군요.
댓글 달기