Dichiarare la stringa multilinea in C++
-
Usa la classe
std::string
per dichiarare una stringa multilinea in C++ -
Usa la notazione
const char *
per dichiarare una stringa letterale su più linee -
Usa la notazione
const char *
con caratteri backlash Dichiara stringa multilinea letterale
Questo articolo spiegherà diversi metodi su come dichiarare una stringa multilinea in C++.
Usa la classe std::string
per dichiarare una stringa multilinea in C++
L’oggetto std::string
può essere inizializzato con un valore stringa. In questo caso, dichiariamo la variabile stringa s1
come variabile locale della funzione main
. Il C++ consente di concatenare automaticamente più stringhe con virgolette doppie in un’istruzione. Di conseguenza, si potrebbe includere un numero qualsiasi di linee durante l’inizializzazione della variabile stringa
e mantenere il codice leggibile in modo più coerente.
#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;
}
Produzione:
This string will be printed as the one. You can include as many linesas you wish. They will be concatenated
Usa la notazione const char *
per dichiarare una stringa letterale su più linee
Nella maggior parte delle situazioni, tuttavia, può essere più pratico dichiarare una stringa letterale di sola lettura con un qualificatore const
. Ciò è più pratico quando i testi relativamente lunghi devono essere inviati alla console e questi testi sono per lo più statici con modifiche minime o nulle nel tempo. Nota che, la stringa di caratteri del qualificatore const
deve essere convertita nell’oggetto std::string
prima di essere passata come argomento dell’algoritmo copy
.
#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;
}
Produzione:
This string will be printed as the one. You can include as many linesas you wish. They will be concatenated
Usa la notazione const char *
con caratteri backlash Dichiara stringa multilinea letterale
In alternativa, si può anche utilizzare il carattere backslash \
per costruire una stringa letterale su più linee e assegnarla al puntatore char
qualificato const
. In breve, il carattere barra rovesciata deve essere incluso alla fine di ogni interruzione di riga, il che significa che la stringa continua sulla riga successiva.
Tieni presente, tuttavia, che la spaziatura diventa più soggetta a errori da gestire poiché eventuali caratteri invisibili come tabulazioni o spazi verranno inclusi nell’output. D’altra parte, si potrebbe utilizzare questa funzione per visualizzare più facilmente alcuni modelli da console.
#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;
}
Produzione:
This string will
printed as the pyramid
as one single string literal form
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