[C언어] 두 문자열을 합치는 3가지 방법

ET의 공부/C언어|2020. 4. 12. 17:32

C언어에서 두 문자열을 합치는 3가지 방법을 포스팅 해보겠습니다.

 

1. 두 문자열 합치는 방법 - 배열의 요소 접근

 

첫 번째 방법은 배열의 요소에 접근하여 합치는 방법입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#include "stdio.h"
 
int main()
{
    char str1[100= "Tistory ";
    char str2[100= "Et IT";
    int i, j;
 
    for(i = 0; str1[i] != '\0'++i);
    for(j = 0; str2[j] != '\0'++j, ++i)
    {
        str1[i] = str2[j];
    }
    
    str1[i] = '\0';
    printf(" 결과 : %s\n", str1);
    return 0;
}
 

 

 for(i = 0; str1[i] != '\0'++i); 을 이용하여 str1의 끝자리를 알아낸 후 str1[i] 부터 str2의 요소를 넣어주게 됩니다.

 

 

 

2. 두 문자열 합치는 방법 - 포인터 사용

 

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
26
#include "stdio.h"
 
int main()
{
    char str1[100= "Hello ";
    char str2[100= "Nict to meet you";
 
 
    char *= str1;
    char *= str2;
    
    while(*a)
    {
        a++;
    }
    while(*b)
    {
        *= *b;
        b++;
        a++;
    }
    *= '\0';
    printf("결과: %s\n", str1);
    return 0;
}
 
 

 

str1,2를 가르키는 포인터 a,b를 선언한후 a의 끝부분 주소부터 b의 시작부분을 b가 끝날때까지 넣어주면 두 문자열을 합칠 수 있습니다.

 

 

 

3. 두 문자열 합치는 방법 - 함수 사용

 

1
2
3
4
5
6
7
8
9
10
11
12
#include "stdio.h"
#include<string.h>
 
int main()
{
    char str1[100= "가나다라 ";
    char str2[100= "마바사";
 
 
    printf("결과: %s\n", strcat(str1,str2));
    return 0;
}
 

 

strcat 함수를 사용하여 두 문자열을 붙일 수 있습니다. strcat은 string concatenate 의 약어입니다.

 

감사합니다.

댓글()