将字符串拆分为最大 30

问题描述

我需要编写函数将我的大字符串拆分为最大大小为 30 的 arr。我尝试了这样的事情:

byte packetNumber;
String Text = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";

void loop(){
  convertData(Text);
}

void convertData(String toSlice) {
  packetNumber = ceil((float)toSlice.length() / 30);
  byte mod = toSlice.length() % 30;
  char Arr[packetNumber][30];
  byte buf = 0,buf2 = 30;
  for (byte x = 0; x < packetNumber; x++) {
    for (byte y = buf; y < buf2; y++) {
      Arr[x][y] = toSlice[y];
      Serial.print(toSlice[y]);
      Serial.print("----->");
      Serial.print(y);
      Serial.print("\n");
    }
    if (x == packetNumber-2){
      buf+=mod;
      buf2+=mod;
    }
    else{
      buf+=30;
      buf2+=30;
    }
  }
  Serial.print(Arr[0]);
  Serial.print(Arr[1]);
  Serial.print(Arr[2]);
  Serial.print("\n");
  Serial.print(toSlice[32]);
  Serial.print("\nilosc pakietow: ");
  Serial.print(packetNumber);
  Serial.print("\n");
}

输出是:

Lorem Ipsum 只是印刷和排版的虚拟 te⸮⸮xtJ

我认为这是因为它占用了太多内存,因为它用这些数据覆盖了我的其他变量。你知道有什么好的解决方案吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)