strcpy 함수 만들기
민구
질문 제목 : strcpy 함수 만들기질문 내용 :
#include stdio.h
#include string.h
void c(char *,char *);int main()
{
char str1[20]=apple;
char str2[20]=banana;
c(str1,str2);
printf(%s,a);
printf(%s,b);
return 0;
}
void c(char *a,char *b)
{
char temp[20];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
strcpy 기능을 이용해서 str1,str2 각각에 있는 문자열을 바꾸는
함수를 만들어서 main함수에서 이를 바뀐 값을 출력하는건데요.
c함수에 꼭 str1,str2 두배열을 함수로 돌리라고 문제에 명시되어있어서
두문자배열을 함수로 넘기는 방법은포인터변수를 통해서 라고 생각해서 *a,*b라는 포인터변수를 만들고
strcpy를 사용해서값을 바꿨는데
메인함수에서 아래서 사용한 포인터변수를 인식못하는거같아요..
어떻게 코딩해야 맞는걸까요?
-
에녹
어? 이렇게도 생각해서 아까 해봤을땐 안되더니 또 해보니까 되네요..뭐징, 감사합니다~
-
시원
그럼 메인함수에도 선언을 하셔야져.
메인함수에는 char str1[20]하고 str2[20]밖에 없잖아요.
그리고 문자열배열도 포인터로 취급이 됩니다. 대신 str1[20]이렇게 쓰는게 아니라 0번째 주소만,
즉 str1,str2 이렇게만 쓰면 돼요. 그리고 포인터로 해주실거 같으셨으면 char *a,*b를 해주시고서
a=str1 b=str2 이렇게 해주셨어야지요?.. -
두동
제가 알기로는 문자열배열은 함수로 돌릴수없지않나요 그래서 str1과 str2를 포인터로 보고 포인터 변수를 선언한건데여. 제가 잘못알고잇는걸까요?? ㅠㅠㅠ
-
비
메인함수에서 선언된건 문자열 str1,str2인데, 왜 printf에는 a와 b로 되어있지요?
str1,str2로 바꾸셔야하는거 아닌가요?