포인터를 사용한 문자열 연결

CBeginner
지금 연습하기

소개

C 프로그래밍에서, 우리는 두 문자열의 기본 주소를 char 포인터 변수로 지정하고, 포인터를 첫 번째 문자열의 끝까지 증가시킨 다음, 두 번째 문자열의 문자를 첫 번째 문자열의 끝에 복사하여 포인터를 사용하여 두 문자열을 연결할 수 있습니다.

이 랩에서는 C 프로그래밍 언어에서 포인터를 사용하여 두 문자열을 연결하는 방법을 배우게 됩니다.

새 파일 생성

먼저, 텍스트 편집기를 열고 ~/project/ 디렉토리에 main.c라는 새 파일을 생성합니다.

헤더 파일 포함

이 단계에서는 프로그램에 필요한 헤더 파일인 stdio.hstdlib.h를 포함합니다.

#include <stdio.h>
#include <stdlib.h>

main() 함수 정의

main() 함수는 C 프로그램의 본문을 정의하는 데 사용됩니다.

int main(){
  // TODO: Write code here
  return 0;
}

변수 선언

이 단계에서는 각각 100 바이트 크기의 두 개의 문자 배열 aabb를 선언합니다.

char aa[100], bb[100];

문자열 입력

이 단계에서는 사용자가 두 문자열 aabb의 값을 제공하고 gets() 함수를 사용하여 저장합니다.

printf("Enter the first string: ");
gets(aa);

printf("Enter the second string to be concatenated: ");
gets(bb);

문자열 연결

이 단계에서는 두 개의 문자 포인터 ab를 정의하고 두 번째 문자열 bb를 첫 번째 문자열 aa에 연결하기 시작합니다.

char *a = aa;
char *b = bb;

while(*a){
  a++;
}

while(*b){
  *a = *b;
  b++;
  a++;
}
*a = '\0';
  • *a는 첫 번째 문자열 aa의 끝을 가리키지 않는 한 다음 메모리 위치를 가리킵니다. 이는 while(*a) 표현식을 사용하여 수행됩니다.
  • 여기서 a는 첫 번째 문자열 aa의 끝에 도달할 때까지 다음 메모리 위치로 증가합니다.
  • *b는 두 번째 문자열 bb의 끝을 가리키지 않을 때까지 다음 메모리 위치를 가리킵니다. 이는 while(*b) 표현식을 사용하여 수행됩니다.
  • 각 메모리 위치에 대해 ab가 가리키는 값으로 할당된 다음 ab가 모두 증가합니다. 이는 *a = *b; b++; a++; 표현식을 사용하여 수행됩니다.
  • '\0'는 문자열의 끝을 나타냅니다.

연결된 문자열 표시

이 단계에서는 연결 프로세스가 완료된 후 연결된 문자열을 표시합니다.

printf("\nThe string after concatenation is: %s ", aa);

컴파일 및 실행

이 단계에서는 다음 명령을 사용하여 main.c 파일을 컴파일하고 실행합니다.

gcc main.c -o output
./output

전체 코드

다음은 포인터를 사용하여 문자열을 연결하는 프로그램의 전체 코드입니다.

#include <stdio.h>
#include <stdlib.h>

int main(){
  char aa[100], bb[100];

  printf("Enter the first string: ");
  gets(aa);

  printf("Enter the second string to be concatenated: ");
  gets(bb);

  char *a = aa;
  char *b = bb;

  while(*a){
    a++;
  }

  while(*b){
    *a = *b;
    b++;
    a++;
  }
  *a = '\0';

  printf("\nThe string after concatenation is: %s ", aa);

  return 0;
}

요약

이 랩에서는 C 프로그래밍 언어에서 포인터를 사용하여 두 문자열을 연결하는 방법을 배웠습니다. 두 문자열의 기본 주소를 char 포인터 변수로 지정하고, 포인터를 첫 번째 문자열의 끝까지 증가시킨 다음, 두 번째 문자열의 문자를 첫 번째 문자열의 끝에 복사하여 이를 수행했습니다. 기능성을 확인하기 위해 코드를 컴파일하고 실행하는 것을 잊지 마십시오.