微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将字符串拆分为最大 30

如何解决将字符串拆分为最大 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 举报,一经查实,本站将立刻删除。