[완료](C언어)void함수에서 문자열 포인터를 인수로 받아, 문자열 시작 위치를 변경하는 처리...
글쓴이: xeno8263 / 작성시간: 수, 2009/06/03 - 2:45오후
안녕하세요.
C언어 관련 질문인데요.
void함수에서 문자열 포인터를 인수로 받아, 문자열 시작 위치를 변경하는 처리를 하고 싶은데,
어떻게 하면 좋을까요?
abcde문자열을 가르키는 s의 시작주소가 함수 호출 후에는 2칸 뒤로 가는 형태의 처리를 하고 싶습니다.
도움 부탁드립니다!!
char*형을 반환하지 않고 void형 함수에서 처리하고 싶은데, 잘 안되네요...ㅠㅠ
그럼, 감사드립니다!!
#include <stdio.h> void func(char* str) { //??? } int main(int argc, char* argv) { char s[10] = "abcde"; func(s); printf("s:%s\n", s); //print "cde" return 0; }
Forums:
이런건가요?
그냥 생각나서 적어 봤습니다. 될지는 모르겠습니다. ^^
char를 변경하려면 char
char를 변경하려면 char *를 받아야 하듯이, char *를 변경하려면 char **를 받아야 합니다.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
감사합니다!
#include
void func(char* str)
{
*str = *str + 2;
}
int main(int argc, char* argv)
{
char s[10] = "abcde";
func(&s);
printf("s:%s\n", s); //print "cde"
return 0;
}
이렇게 되어야 하지 않을까요? -_-
어떻게 컴파일이 된지 모르겠네요. 포인터를 처음 공부하는 초보에게는 몇 가지 생각해볼만한 문제지요.
위 코드의 문제는
1. 배열의 주소를 바꾸어 받으려는 것.
2. 포인터가 다른 주소를 가르키게 할려면 포인터의 포인터를 줘야하는데 그러지 않은 것.
Life rushes on, we are distracted
Life rushes on, we are distracted
댓글 달기