C언어 포인터로 문자배열을 복사하기
2018. 10. 4. 20:47ㆍ개발노트
우선 문자열 배열을 만들어야겠죠?
char s1{256]
char s2{256]
s1배열을 s2로 복사하기위해 포인터를 만들어줍니다.
char *from, *to;
from과 to라는 포인터를 만들어줬습니다.
다음으로 할 일은 포인터와 문자열을 연결시켜주는 일입니다.
from = s1;
to = s2;
이런식으로 하면 각각의 포인터들이 배열에 연결됩니다.
문자열을 입력받을껀데 gets함수를 사용해서 입력받습니다.
gets_s(s1); 이렇게 하면 엔터를 칠 때까지 문자열들이 s1배열에 모두 들어갑니다.
마지막으로 복사만 해주면 끝납니다.
while 문을 써서 복사를 해봅시다.
while(*from !='\0') //*from 과 '\0' 가 다르면 참, 그렇지 않으면 거짓 즉 NULL까지 가면 while문 종료
{
*to++ = *from++;
}
*to = '\0';
여기서 '\0'은 쓰레기값 NULL을 말합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h> #include <string.h> int main(void) { char s1[256]; char s2[256]; char*from, *to; from = s1; to = s2; printf("문자열을 입력하세요 : "); gets_s(s1); printf("\n"); while (*from != '\0') { //*from 과 '\0' 가 다르면 참, 그렇지 않으면 거짓 *to++ = *from++; } *to = '\0'; printf("입력된 문자열 %s \n", s1); printf("복사된 문자열 %s \n", s2); return 0; } | cs |