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