본문 바로가기

C++ IDE를 위한 과정

C++ 문자열 포인터

728x90
반응형

 문자열 포인터의 개념과 활용방법을 같이 학습해 봅시다.


문자열 포인터 종류

  • string str1 = "codingon";
    • C++ 표준 라이브러리의 std::string 클래스
    • 다양한 메서드(.length(), .substr(), .append() 등)를 통해 문자열 조작이 편리
  • char str2[] = "codingon";
    • char 배열에 null-terminated 문자열('\0')로 저장
    • 메모리에 할당된 배열의 크기는 고정적이며, 문자열의 내용을 변경할 수는 있지만 크기를 조정할 수 없음
  • char str3[] = {'c', 'o', 'd', 'i', 'n', 'g', 'o', 'n'};
    • 문장 배열일 뿐 문자열로 간주되지 않음
    • 인덱싱 가능
  • char* str4 = "helloworld";
    • 문자열 리터럴*에 대한 포인터(char*)
    • 읽기 전용 메모리 영역

*리터럴 : 데이터 값 그자체를 말하는 용어 여기서는 "helloworld"가 리털럴이다.


char 형 포인터

포인터로 문자열을 관리하기 위해 사용(주소 기반 접근)

#include <iostream>
using namespace std;

int main() {
	char str[] = "codingon";
    
    //포인터로 배열 접근
    char* ptr = str;
    
    cout << "첫 번째 문자: " << *ptr << endl;
    cout << "세 번째 문자: " << *(ptr + 2) << endl;
    
    //수정 가능
    ptr[0] = 'H';
    cout << "수정된 문자열: " << str << endl;
    
    return 0;
}

 

 

이코드의 결과는 다음과 같이 나온다.

  • 첫 번째 문자 : c
  • 세 번쟤 문자 : d
  • 수정된 문자열 : Hodingon

*ptr 이라는 포인터는 주소값을 저장 하기에 위 처럼 +2를 할경우 주소값에서 2를 더한 값의 인덱싱을 찾아 출력이 가능한 것이다. 포인터 없이 +2를 할경우 자료형 오류가 발생한다.

 


실습. 포인터 사용해보기

  • std::cin, getline을 사용하지 않고 사용자 정의 함수를 직접 만들고, 문자열을 입력 받고 출력하는 코드를 작성하시오.
  • cin.get() 함수 사용
  • * 정답 예시 코드는 하루 코딩에서

결과 값

포인터는 개념이 어려워 보일 수 있지만, 사용하시다 보면 왜 사용하는지 알게되실 것입니다.

오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

반응형

'C++ IDE를 위한 과정' 카테고리의 다른 글

C++ call by 기능  (0) 2025.02.24
C++ 포인터 AND 동적배열  (0) 2025.02.24
C++ namspace  (0) 2025.02.21
C++ 구조체 VS 클래스, getter setter, 상속  (0) 2025.02.12
C++ 클래스 & this pointer  (0) 2025.02.11