"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++에서 문자열 리터럴과 문자 리터럴을 연결하는 방법은 무엇입니까?

C++에서 문자열 리터럴과 문자 리터럴을 연결하는 방법은 무엇입니까?

2024-11-03에 게시됨
검색:188

How to Concatenate String Literals and Character Literals in C  ?

C의 문자열 리터럴 및 문자 리터럴

C의 문자 리터럴과 문자열 리터럴을 연결하려고 하면 예기치 않은 동작이 발생할 수 있습니다. 예를 들면:

string str = "ab"   'c';
cout 

이 코드는 문자열 리터럴과 문자 리터럴을 결합하기 위해 " " 연산자가 정의되지 않았기 때문에 예측할 수 없는 출력을 생성합니다. 대신 컴파일러는 문자열 리터럴을 C 스타일 문자열(const char 포인터)로 처리하고 문자 리터럴의 승격된 int 값을 문자열 리터럴의 주소에 추가합니다. 이로 인해 정의되지 않은 동작이 발생합니다.

이 문제를 방지하려면 연결하기 전에 문자 리터럴을 문자열로 명시적으로 변환하십시오.

std::string str = std::string("ab")   'c';

또는 원하는 결과를 얻기 위해 연결을 사용합니다:

std::string str = "ab";
str  = 'c';

두 번째 코드 조각에서 문자열 개체에는 의도한 연결을 수행하는 오버로드된 " " 연산자가 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3