Concatenación de caracteres de dos cadenas
Frecuentes
Visto 822 veces
-3
Estoy trabajando en este problema.
Escriba una clase String y sobrecargue el operador + para mezclar dos cadenas de manera que se cree una nueva cadena con un carácter de cada cadena junta hasta que se mezclen todos los caracteres. Por ejemplo • "1234567890" + "QWERTYUIOP" = "1Q2W3E4R5T6Y7U8I9O0P"
¿Me pueden ayudar a concatenar los caracteres de dos cadenas?
Este es el código que he escrito:
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<string>
using namespace std;
class MY_String : public string
{
public:
char *rep;
MY_String(){}
MY_String(char *tem)
{
rep = new char[strlen(tem)+1] ;
strcpy(rep,tem);
}
MY_String operator + (const MY_String &rhs)
{
char *temp;MY_String obj11("1234567890");
temp= new char[strlen(rep) + strlen(rhs.rep)+1];//cout<<"TEMP::"<<rhs.rep<<endl;
temp = strcat(rep,rhs.rep);
return MY_String(temp);
}
};
int main()
{
MY_String obj1("1234567890");
MY_String obj2("QWERTYUIOP");
MY_String obj3;
obj3 = obj1+obj2;
cout<<obj3.rep;
return 0;
}
1 Respuestas
0
Asumiendo que sabes cómo sobrecargar el operator+
, el algoritmo podría ser muy simple.
string A, B, Result;
int As = A.size(), Bs = B.size();
int MixingLenght = min(As,Bs);
for (int index = 0; index < MixingLength; ++index)
{
Result += A[index];
Result += B[index];
}
Luego tendría que decidir qué hacer con la parte restante (si las cuerdas son de diferente tamaño). Puede ignorarlo o agregarlo al final del Result
.
Respondido 28 ago 12, 12:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas visual-c++ or haz tu propia pregunta.
En realidad, he sobrecargado el operador '+' y usted ha usado el operador '+=' aquí. Entonces, ¿es como una y la misma cosa? - Ankur
No, son dos cosas diferentes. Además, estoy adjuntando
char
en mi solución (usando+=
). Podrías usarstd::string::append
en lugar de. - Bartek BanachewiczOh, podrías usar la recurrencia de
+
, por supuesto, pero me parece una exageración. No voy a escribir tu tarea por ti. - Bartek BanachewiczOye, no te estoy pidiendo que completes mi tarea y tampoco soy un niño de escuela. - Ankur
He escrito el código. El único problema al que me enfrento es cómo sobrecargar el operador '+'. - Ankur