Concatenazione di stringhe in C++
La stringa è un tipo di struttura dati utilizzata per memorizzare caratteri. La concatenazione di stringhe in C++ è uno degli argomenti più discussi relativi alle stringhe. Esistono più metodi per concatenare le stringhe utilizzando metodi definiti dall'utente e un paio di metodi per concatenare le stringhe utilizzando metodi predefiniti. Controlliamo tutti questi metodi.
Metodi di concatenazione di stringhe
Esistono 6 metodi per concatenare Corda come menzionato sotto:
- Utilizzando la funzione append().
- Utilizzando l'operatore '+'.
- Utilizzando la funzione strcat().
- Utilizzo di C++ per Loop.
- Utilizzo dell'ereditarietà.
- Utilizzando la funzione Friend e la funzione strcat().
1. Utilizzo della funzione append()
La funzione append() è una funzione membro di classe std::string . Usando questa funzione, possiamo concatenare due oggetti std::string (stringhe in stile C++) come mostrato nell'esempio seguente.
Sintassi:
string& string::append (const string& str); Here, str: String to be appended.
Di seguito è riportato il programma C++ per la concatenazione di stringhe utilizzando la funzione append():
C++
// C++ Program for string> // concatenation using append> #include> using> namespace> std;> // Driver code> int> main()> {> > string init(> 'this is init'> );> > string add(> ' added now'> );> > // Appending the string.> > init.append(add);> > cout < < init < < endl;> > return> 0;> }> |
Produzione
this is init added now
2. Utilizzando l'operatore '+'.
Questo è il metodo più semplice per concatenare due stringhe. IL + operatore aggiunge stringhe e restituisce una stringa concatenata. Questo metodo funziona solo per stringhe in stile C++ (oggetti std::string) e non funziona su stringhe in stile C (array di caratteri).
Sintassi:
string new_string = init + add;
Di seguito è riportato il programma C++ per la concatenazione di stringhe utilizzando l'operatore '+':
C++
// C++ Program for string> // concatenation using '+' operator> #include> using> namespace> std;> // Driver code> int> main()> {> > string init(> 'this is init'> );> > string add(> ' added now'> );> > // Appending the string.> > init = init + add;> > cout < < init < < endl;> > return> 0;> }> |
Produzione
this is init added now
3. Utilizzo della funzione strcat()
La funzione C++ strcat() è una funzione integrata definita in file di intestazione. Questa funzione concatena le due stringhe Calore E aggiungere e il risultato viene memorizzato nel file Calore corda. Questa funzione funziona solo per le stringhe in stile C (array di caratteri) e non funziona per le stringhe in stile C++ (oggetti std::string).
Sintassi:
char * strcat(char * init, const char * add);
Di seguito è riportato il programma C++ per la concatenazione di stringhe utilizzando la funzione strcat():
C++
// C++ Program for string> // concatenation using strcat> #include> #include> using> namespace> std;> // Driver code> int> main()> {> > char> init[] => 'this is init'> ;> > char> add[] => ' added now'> ;> > // Concatenating the string.> > strcat> (init, add);> > cout < < init < < endl;> > return> 0;> }> |
Produzione
this is init added now
4. Utilizzo del ciclo for
L'uso di un loop è uno dei metodi più basilari per concatenare le stringhe. Qui stiamo aggiungendo gli elementi uno per uno mentre attraversiamo l'intera stringa e poi un'altra stringa. Il risultato finale sarà la stringa concatenata formata da entrambe le stringhe.
Di seguito è riportato il programma C++ per la concatenazione di stringhe utilizzando il ciclo for:
C++
// C++ Program for string> // concatenation using for loop> #include> using> namespace> std;> // Driver code> int> main()> {> > string init(> 'this is init'> );> > string add(> ' added now'> );> > string output;> > // Adding element inside output> > // from init> > for> (> int> i = 0; init[i] !=> ' '> ; i++)> > {> > output += init[i];> > }> > // Adding element inside output> > // fromt add> > for> (> int> i = 0; add[i] !=> ' '> ; i++)> > {> > output += add[i];> > }> > cout < < output < < endl;> > return> 0;> }> |
Produzione
this is init added now
5. Utilizzo dell'ereditarietà
Di seguito è riportato il programma C++ per la concatenazione di stringhe utilizzando l'ereditarietà:
C++
// C++ program for string concatenation> // using inheritance> #include> #include> using> namespace> std;> > // Base class> class> base> {> > protected> :> > virtual> string concatenate(string &str1,> > string &str2) = 0;> };> > // Derive class> class> derive:> protected> base {> > public> :> > string concatenate (string &str1,> > string &str2)> > {> > string temp;> > temp = str1 + str2;> > return> temp;> > }> };> > // Driver code> int> main()> {> > string init(> 'this is init'> );> > string add(> ' added now'> );> > > // Create string object> > derive obj;> > > // Print string> > cout < < obj.concatenate (init, add);> > > return> 0;> }> |
Produzione
this is init added now
6. Utilizzando la funzione Friend e la funzione strcat()
Di seguito è riportato il programma C++ per la concatenazione di stringhe utilizzando la funzione friend e la funzione strcat():
C++
// C++ program for string concatenation> // using friend function and strcat()> #include> #include> using> namespace> std;> // Base class> class> Base {> > public> :> > char> init[100] => 'this is init'> ;> > char> add[100] => ' added now'> ;> > > friend> void> myfun(Base b);> };> > void> myfun (Base b)> {> > // Pass parameter to concatenate> > strcat> (b.init, b.add);> > > cout < < b.init;> }> // Driver code> int> main()> {> > > // Create object of base class> > Base b;> > > // pass b object to myfun() to print> > // the concatenated string> > myfun(b);> > > return> 0;> }> |
Produzione
this is init added now