0Pricing
C++ Academy · 강의

뷰 만들기

문자열에 대한 뷰 만들기

뷰 만들기은(는) CoddyKit의 무료 C++ Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C++ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

문자열 리터럴에서

가장 간단한 뷰는 문자열 리터럴에서 만듭니다. 길이는 자동으로 계산됩니다.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "automatic length";
    std::cout << sv.size() << "\n";
}

std::string에서

std::string은 뷰로 암시적으로 변환되므로, 복사하지 않고 내용을 확인할 수 있습니다.

#include <iostream>
#include <string>
#include <string_view>
int main() {
    std::string s = "owned text";
    std::string_view sv = s;
    std::cout << sv << "\n";
}

포인터와 길이에서

문자 포인터와 명시적인 길이로 뷰를 만들 수 있습니다. null로 끝나지 않는 버퍼에 유용합니다.

#include <iostream>
#include <string_view>
int main() {
    const char buf[] = {'H','e','l','l','o','!'};
    std::string_view sv(buf, 5);
    std::cout << sv << "\n"; // Hello
}

sv 리터럴 접미사

sv 접미사(std::string_view_literals에서 제공)는 뷰를 직접 만들며, 문자열 안에 포함된 null 문자도 올바르게 처리합니다.

#include <iostream>
#include <string_view>
using namespace std::string_view_literals;
int main() {
    auto sv = "ready"sv;
    std::cout << sv.size() << "\n";
}

substr로 슬라이스하기

substr(pos, count)는 같은 버퍼를 가리키는 새 뷰를 반환하므로, 텍스트의 일부를 추가 비용 없이 확인할 수 있습니다.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "2026-05-30";
    std::cout << sv.substr(0, 4) << "\n"; // 2026
}

remove_prefix

remove_prefix(n)은 시작 포인터를 앞으로 이동하여 뷰의 앞부분을 줄입니다. 복사는 발생하지 않습니다.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "   trimmed";
    sv.remove_prefix(3);
    std::cout << sv << "\n"; // trimmed
}

remove_suffix

remove_suffix(n)은 길이를 줄여 뷰의 뒷부분을 제거합니다.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "data.csv";
    sv.remove_suffix(4);
    std::cout << sv << "\n"; // data
}

빈 뷰

기본 생성된 뷰는 비어 있습니다. empty()는 true를 보고하고 size()는 0입니다.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv;
    std::cout << sv.empty() << " " << sv.size() << "\n";
}

뷰 복사는 저렴합니다

한 뷰를 다른 뷰에 대입하면 포인터와 길이만 복사되며, 두 뷰는 여전히 같은 문자를 가리킵니다.

#include <iostream>
#include <string_view>
int main() {
    std::string_view a = "shared";
    std::string_view b = a;
    b.remove_prefix(3);
    std::cout << a << " " << b << "\n"; // shared red
}

string으로 다시 변환하기

데이터를 소유해야 할 때는 뷰로부터 std::string을 생성합니다. 이때 의도적으로 복사가 발생합니다.

#include <iostream>
#include <string>
#include <string_view>
int main() {
    std::string_view sv = "copy me";
    std::string owned{sv};
    std::cout << owned << "\n";
}

생성 방법 선택하기

일반적인 경우에는 리터럴과 암시적 변환을 사용하고, 원시 버퍼에는 포인터와 길이 형식을 사용하며, 할당 없이 다시 슬라이스하려면 substr/remove_*를 사용하세요.

빠른 확인

뷰를 만드는 방법에 대한 이해를 확인해 보세요.

복습

뷰를 만드는 방법을 배웠습니다:

  • 리터럴, 문자열 또는 포인터와 길이로 만들 수 있습니다.
  • sv 접미사는 뷰를 직접 만듭니다.
  • substr, remove_prefix, remove_suffix는 추가 비용 없이 다시 슬라이스합니다.
  • 데이터를 소유해야 할 때는 std::string을 생성합니다.

자주 묻는 질문

“뷰 만들기” 강의는 무료인가요?

네 — “뷰 만들기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C++ Academy 강의 전체를 잠금 해제할 수 있습니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“뷰 만들기”에서 뭘 배우나요?

문자열에 대한 뷰 만들기 브라우저에서 직접 실행하는 실습 코드로 C++ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C++ Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C++ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“뷰 만들기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C++ Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C++ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. string_view를 사용하는 이유
  2. 뷰 만들기
  3. 주의점과 수명
  4. 문자열 알고리즘
← C++ Academy(으)로 돌아가기