Concatenazione di valori letterali stringaString Literal Concatenation

Per creare valori letterali stringa che accettano più righe, è possibile concatenare le due stringhe.To form string literals that take up more than one line, you can concatenate the two strings. A questo scopo, digitare una barra rovesciata, quindi premere il tasto INVIO.To do this, type a backslash, then press the RETURN key. La barra rovesciata indica al compilatore di ignorare il successivo carattere di nuova riga.The backslash causes the compiler to ignore the following newline character. Ad esempio, il valore letterale stringaFor example, the string literal

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

è identico alla stringais identical to the string

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

La concatenazione di stringhe può essere utilizzata in tutte le situazioni in cui in precedenza era stata utilizzata una barra rovesciata seguita da un carattere di nuova riga per immettere stringhe più lunghe di una riga.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.

Per forzare una nuova riga in un valore letterale stringa, immettere la sequenza di escape di nuova riga (\n) nel punto della stringa in cui si vuole interrompere la riga, come mostrato di seguito: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"  

Poiché le stringhe possono iniziare in qualsiasi colonna del codice sorgente e le stringhe lunghe possono continuare in qualsiasi colonna di una riga successiva, è possibile posizionare le stringhe in modo da migliorare la leggibilità del codice sorgente.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 entrambi i casi, la relativa rappresentazione sullo schermo quando l'output non è interessato.In either case, their on-screen representation when output is unaffected. Ad esempio:For example:

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

Se ogni parte della stringa è racchiusa tra virgolette doppie, le parti vengono concatenate e vengono restituite come un'unica stringa.As long as each part of the string is enclosed in double quotation marks, the parts are concatenated and output as a single string. Questa concatenazione si verifica a seconda della sequenza di eventi durante la compilazione specificata dalle fasi di conversione.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"  

Un puntatore di stringa, inizializzato come due valori letterali stringa distinti, separati da un solo spazio, viene archiviato come un'unica stringa. I puntatori sono illustrati in Dichiarazioni di puntatori.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). Una volta eseguito il corretto riferimento, come nel seguente esempio, il risultato è identico all'esempio precedente: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 ) ;  

Nella fase 6 della conversione, le sequenze di caratteri multibyte specificate da una sequenza di valori letterali stringa o di valori letterali stringa con caratteri wide adiacenti, vengono concatenate in una sola sequenza di caratteri multibyte.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. Pertanto, non progettare programmi per consentire la modifica dei valori letterali stringa durante l'esecuzione.Therefore, do not design programs to allow modification of string literals during execution. Lo standard ANSI C specifica che il risultato della modifica di una stringa non è definito.The ANSI C standard specifies that the result of modifying a string is undefined.

Vedere ancheSee Also

Valori letterali stringa CC String Literals