📜  序列化和反序列化字符串数组

📅  最后修改于: 2022-05-13 01:57:50.882000             🧑  作者: Mango

序列化和反序列化字符串数组

我们给出了一个字符串数组,我们必须序列化字符串数组并反序列化序列化的字符串。
例子:

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!!!

序列化:扫描字符串中的每个元素,计算其长度并附加一个字符串和一个元素分隔符或分隔符(该分隔符不应出现在字符串中)。我们附加字符串的长度,以便我们知道每个元素的长度。

反序列化函数:找到分隔符的位置,然后从位置 + 1 到单词的长度,我们将其作为单个元素存储在数组中。

// CPP program to serialize and
// deserialize the array of string
  
#include
  
using namespace std;
  
// Function to serialized the array of string
string serialize(string str[], int ln)
{
    string temp = "";
    for (int i=0; i-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 <

输出:

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

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