문자열 리터럴 연결String Literal Concatenation

두 줄 이상이 필요한 문자열 리터럴을 형성하려면 두 문자열을 연결합니다.To form string literals that take up more than one line, you can concatenate the two strings. 이렇게 하려면 백슬래시를 입력한 다음 리턴 키를 누릅니다.To do this, type a backslash, then press the RETURN key. 백슬래시를 사용하면 컴파일러가 다음 줄 바꿈 문자를 무시합니다.The backslash causes the compiler to ignore the following newline character. 예를 들어, 다음 문자열 리터럴은For example, the string literal

"Long strings can be bro\  
ken into two or more pieces."  

다음 문자열과 동일합니다.is identical to the string

"Long strings can be broken into two or more pieces."  

문자열 연결은 이전에 백슬래시를 사용한 모든 위치에 사용할 수 있습니다. 두 줄 이상의 문자열을 입력하려면 뒤에 줄 바꿈 문자를 추가하면 됩니다.String concatenation can be used anywhere you might previously have used a backslash followed by a newline character to enter strings longer than one line.

문자열 리터럴 내에서 줄을 강제로 추가하려면 다음과 같이 줄을 나눌 문자열 지점에 줄 바꿈 이스케이프 시퀀스(\n)를 입력합니다.To force a new line within a string literal, enter the newline escape sequence (\n) at the point in the string where you want the line broken, as follows:

"Enter a number between 1 and 100\nOr press Return"  

문자열은 소스 코드의 모든 열에서 시작할 수 있으며 긴 문자열은 다음 줄의 임의 열에서 계속될 수 있으므로 소스 코드를 읽기 쉽도록 문자열을 배치할 수 있습니다.Because strings can start in any column of the source code and long strings can be continued in any column of a succeeding line, you can position strings to enhance source-code readability. 어떤 경우든 출력 시의 화면 표현에는 영향이 없습니다.In either case, their on-screen representation when output is unaffected. 예:For example:

printf_s ( "This is the first half of the string, "  
           "this is the second half ") ;  

문자열의 각 부분이 큰따옴표로 묶여 있는 한 해당 부분은 연결되고 단일 문자열로 출력됩니다.As long as each part of the string is enclosed in double quotation marks, the parts are concatenated and output as a single string. 이 연결은 변환 단계에 따라 지정된 컴파일이 진행되는 동안 이벤트 시퀀스에 따라 발생합니다.This concatenation occurs according to the sequence of events during compilation specified by translation phases.

"This is the first half of the string, this is the second half"  

공백으로만 구분된 두 개의 개별 문자열 리터럴로 초기화되는 문자열 포인터는 단일 문자열로 저장됩니다(포인터는 포인터 선언에서 설명).A string pointer, initialized as two distinct string literals separated only by white space, is stored as a single string (pointers are discussed in Pointer Declarations). 다음 예제와 같이 올바르게 참조하는 경우 결과는 앞의 예제와 동일합니다.When properly referenced, as in the following example, the result is identical to the previous example:

char *string = "This is the first half of the string, "  
               "this is the second half";  

printf_s( "%s" , string ) ;  

변환 6단계에서는 인접 문자열 리터럴 또는 인접 와이드 문자열 리터럴의 임의 시퀀스로 지정된 멀티바이트 문자 시퀀스가 단일 멀티바이트 문자 시퀀스로 연결됩니다.In translation phase 6, the multibyte-character sequences specified by any sequence of adjacent string literals or adjacent wide-string literals are concatenated into a single multibyte-character sequence. 따라서 실행 중에 문자열 리터럴을 수정할 수 있도록 프로그램을 설계하지 마십시오.Therefore, do not design programs to allow modification of string literals during execution. ANSI C 표준은 문자열의 수정 결과가 정의되지 않도록 지정합니다.The ANSI C standard specifies that the result of modifying a string is undefined.

참고 항목See Also

C 문자열 리터럴C String Literals