Concatenació de cadenes en C++
La cadena és un tipus d'estructura de dades que s'utilitza per emmagatzemar caràcters. La concatenació de cadenes en C++ és un dels temes més discutits relacionats amb les cadenes. Hi ha diversos mètodes per concatenar cadenes mitjançant mètodes definits per l'usuari, i un parell de mètodes per concatenar cadenes amb mètodes predefinits. Comprovem tots aquests mètodes.
Mètodes de concatenació de cadenes
Hi ha 6 mètodes per concatenar Corda com s'esmenta a continuació:
- Utilitzant la funció append().
- Utilitzant l'operador '+'.
- Utilitzant la funció strcat().
- Utilitzant C++ for Loop.
- Ús de l'herència.
- Utilitzant la funció Friend i la funció strcat().
1. Utilitzant la funció append().
La funció append() és una funció membre de la std::classe de cadena . Amb aquesta funció, podem concatenar dos objectes std::string (cadenes d'estil C++) tal com es mostra a l'exemple següent.
Sintaxi:
string& string::append (const string& str); Here, str: String to be appended.
A continuació es mostra el programa C++ per a la concatenació de cadenes mitjançant la funció 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;> }> |
Sortida
this is init added now
2. Utilitzant l'operador ‘+’
Aquest és el mètode més fàcil per a la concatenació de dues cadenes. El + operador afegeix cadenes i retorna una cadena concatenada. Aquest mètode només funciona per a cadenes d'estil C++ (objectes std::string) i no funciona amb cadenes d'estil C (matriu de caràcters).
Sintaxi:
string new_string = init + add;
A continuació es mostra el programa C++ per a la concatenació de cadenes mitjançant l'operador '+':
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;> }> |
Sortida
this is init added now
3. Utilitzant la funció strcat().
La funció C++ strcat() és una funció integrada definida a fitxer de capçalera. Aquesta funció concatena les dues cadenes calor i afegir i el resultat s'emmagatzema al calor corda. Aquesta funció només funciona per a cadenes d'estil C (matrius de caràcters) i no funciona per a cadenes d'estil C++ (objectes std::string).
Sintaxi:
char * strcat(char * init, const char * add);
A continuació es mostra el programa C++ per a la concatenació de cadenes mitjançant la funció 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;> }> |
Sortida
this is init added now
4. Utilitzant for Loop
L'ús d'un bucle és un dels mètodes més bàsics de concatenació de cadenes. Aquí, anem afegint elements un per un mentre recorrem tota la cadena i després una altra. El resultat final serà la corda concatenada formada per ambdues cordes.
A continuació es mostra el programa C++ per a la concatenació de cadenes mitjançant el bucle 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;> }> |
Sortida
this is init added now
5. Utilitzar l'herència
A continuació es mostra el programa C++ per a la concatenació de cadenes mitjançant l'herència:
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;> }> |
Sortida
this is init added now
6. Utilitzant la funció Friend i la funció strcat().
A continuació es mostra el programa C++ per a la concatenació de cadenes mitjançant la funció friend i la funció 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;> }> |
Sortida
this is init added now