C++에서 여러 줄 문자열 선언

Jinku Hu 2023년10월12일
  1. std::string 클래스를 사용하여 C++에서 여러 줄 문자열 선언
  2. const char *표기법을 사용하여 여러 줄 문자열 리터럴 선언
  3. 백래시 문자와 함께const char *표기법 사용 여러 줄 문자열 리터럴 선언
C++에서 여러 줄 문자열 선언

이 기사에서는 C++에서 여러 줄 문자열을 선언하는 방법에 대한 몇 가지 방법을 설명합니다.

std::string 클래스를 사용하여 C++에서 여러 줄 문자열 선언

std::string 객체는 문자열 값으로 초기화 할 수 있습니다. 이 경우s1 문자열 변수를main 함수에 지역 변수로 선언합니다. C++에서는 여러 개의 큰 따옴표 문자열 리터럴을 문에서 자동으로 연결할 수 있습니다. 결과적으로string 변수를 초기화하는 동안 여러 줄을 포함하고 코드를 더 일관되게 읽기 쉽게 유지할 수 있습니다.

#include <iostream>
#include <iterator>
#include <string>
#include <vector>

using std::copy;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  string s1 =
      "This string will be printed as the"
      " one. You can include as many lines"
      "as you wish. They will be concatenated";

  copy(s1.begin(), s1.end(), std::ostream_iterator<char>(cout, ""));
  cout << endl;

  return EXIT_SUCCESS;
}

출력:

This string will be printed as the one. You can include as many linesas you wish. They will be concatenated

const char *표기법을 사용하여 여러 줄 문자열 리터럴 선언

하지만 대부분의 상황에서는 const한정자를 사용하여 읽기 전용 문자열 리터럴을 선언하는 것이 더 실용적 일 수 있습니다. 이것은 비교적 긴 텍스트가 콘솔에 출력되어야 할 때 가장 실용적이며 이러한 텍스트는 시간이 지남에 따라 거의 또는 전혀 변경되지 않고 대부분 정적입니다. const 한정자 문자열은copy 알고리즘 인수로 전달하기 전에std::string 객체로 변환해야합니다.

#include <iostream>
#include <iterator>
#include <string>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  const char *s2 =
      "This string will be printed as the"
      " one. You can include as many lines"
      "as you wish. They will be concatenated";

  string s1(s2);

  copy(s1.begin(), s1.end(), std::ostream_iterator<char>(cout, ""));
  cout << endl;

  return EXIT_SUCCESS;
}

출력:

This string will be printed as the one. You can include as many linesas you wish. They will be concatenated

백래시 문자와 함께const char *표기법 사용 여러 줄 문자열 리터럴 선언

또는 백 슬래시 문자\를 사용하여 여러 줄 문자열 리터럴을 구성하고이를const 정규화 된char 포인터에 할당 할 수도 있습니다. 곧 백 슬래시 문자가 각 줄 바꿈 끝에 포함되어야합니다. 즉, 문자열이 다음 줄에서 계속됨을 의미합니다.

그러나 공백은 탭이나 공백과 같은 보이지 않는 문자가 출력에 포함되므로 처리하기 더 오류가 발생하기 쉽습니다. 반면에이 기능을 사용하여 콘솔에 더 쉽게 일부 패턴을 표시 할 수 있습니다.

#include <iostream>
#include <iterator>
#include <string>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  const char *s3 =
      "          This string will\n\
        printed as the pyramid\n\
    as one single string literal form\n";

  cout << s1 << endl;

  printf("%s\n", s3);

  return EXIT_SUCCESS;
}

출력:

          This string will
        printed as the pyramid
    as one single string literal form
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - C++ String