Wir haben ein String-Array angegeben und müssen das String-Array serialisieren und den serialisierten String deserialisieren.
Beispiele:

Input :  "geeks", "are", "awesome"
Output : Serialized String : 5~geeks3~are7~awesome
         Deserialized String : geeks are awesome

Input :  "hello", "guys", "whats", "up!!!"
Output : Serialized String : 5~hello4~guys5~whats5~up!!!
         Deserialized String : hello guys whats up!!!

Serialisierung : Scannen Sie jedes Element in einer Zeichenfolge, berechnen Sie seine Länge und hängen Sie es mit einer Zeichenfolge und einem Elementtrennzeichen oder -begrenzer an (dieses Trennzeichen sollte nicht in der Zeichenfolge vorhanden sein). Wir hängen die Länge der Zeichenfolge an, damit wir die Länge jedes Elements kennen.

Deserialisierte Funktion: Finden Sie die Position des Trennzeichens, dann speichern wir es von der Position + 1 bis zur Wortlänge in einem Array als einzelnes Element.

// CPP program to serialize and
// deserialize the array of string
  
#include<iostream>
  
using namespace std;
  
// Function to serialized the array of string
string serialize(string str[], int ln)
{
    string temp = "";
    for (int i=0; i<ln; i++)
    {
        int ln = str[i].length();
        temp.push_back('0' + ln);
        temp = temp + "~" + str[i];
    }
    return temp;
}
  
// Function to deserialize the string
void deserialized(string str, string deserialize[], int ln)
{
    int len, pos=0;
    string temp = "";
    int i = 0;
    while(pos>-1)
    {
        pos = str.find("~", pos+1);
        if(pos>0)
        {
            len = str[pos-1] - 48;
            temp.append(str, pos+1, len);
            deserialize[i++] = temp;
            temp = "";
        }
    }
}
  
// Driver function
int main()
{
    string str[] = {"geeks", "are", "awesome"};
  
    int ln = sizeof(str)/sizeof(str[0]);
    string serializedstr = serialize(str, ln);
  
    cout << "Serialized String : " << serializedstr <<endl;
  
    string deserialize[ln];
    deserialized(serializedstr,deserialize,ln);
  
    cout << "Deserialized String : ";
    for(int i=0; i<ln; i++)
        cout << deserialize[i] << " ";
  
    return 0;
}

Ausgabe:

Serialized String : 5~geeks3~are7~awesome
Deserialized String : geeks are awesome

Referenzen:
1. https://stackoverflow.com/questions/13271503/converting-array-string-to-string-and-back-in-java
2. https://www.careercup.com/question?id=5684077627703296

Dieser Artikel wurde von Rishabh Jain beigesteuert . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel über Contribute.geeksforgeeks.org schreiben oder Ihren Artikel per E-Mail an Contribute@geeksforgeeks.org senden. Sehen Sie, wie Ihr Artikel auf der Hauptseite von GeeksforGeeks erscheint, und helfen Sie anderen Geeks.

Falls Sie an Live-Kursen mit Experten teilnehmen möchten , beziehen Sie sich bitte auf DSA Live-Kurse für Berufstätige und Competitive Programming Live for Students .