迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

在 Arduino 中拆分字符串

作者:迹忆客 最近更新:2024/03/13 浏览次数:

本教程将讨论使用 Arduino 中的 substring() 函数拆分字符串。


在 Arduino 中使用 substring() 函数拆分字符串

Arduino 提供了一个内置函数 substring() 来拆分给定的字符串。我们可以使用开始和结束索引值拆分字符串。

substring() 函数有两个参数。第一个参数是我们要开始拆分过程的起始索引值,第二个参数是拆分过程将停止的结束索引值。

语法:

Sub_string = MyString.substring(from, to);

变量 Sub_string 将包含 substring() 函数的输出,而 MyString 变量将包含我们要拆分的原始字符串。from 变量包含起始索引,to 变量包含结束索引。

让我们定义一个字符串并使用 substring() 函数将其拆分,然后将其打印在 Arduino 的串行监视器上。

例子:

String My_S = "hello world";

void setup() { Serial.begin(9600); }
void loop() {
  String sub_S = My_S.substring(0, 5);
  Serial.println(sub_S);
  delay(1000);
}

输出:

hello

在上面的代码中,Serial.println() 函数在 Arduino 的串行监视器上打印结果。字符串拆分将从 0 开始,包括 0 索引字符,并在索引 5 结束,不包括索引 5 处的字符。

我们还可以使用 Arduino 的 indexOf() 函数找到字符索引。函数的索引接受两个参数。

第一个参数是强制性的,表示我们要查找其索引的字符或字符串。第二个参数是可选的,它表示查找字符索引的起始索引。

默认情况下,indexOf() 函数从头开始搜索字符串以查找给定字符的索引,但我们也可以使用 indexOf() 函数的第二个参数传递一个索引作为起点。

语法:

int index = MyString.indexOf(val, from);

index 变量将存储 val 变量索引,该索引包含上述代码中的字符或字符串。from 变量定义了用作查找给定字符索引的起点的起始索引。

当我们不知道要传入 substring() 的字符索引时,我们使用 indexOf() 函数。

例如,如果我们想使用空格字符作为结束索引来分割给定的字符串,我们可以使用 indexOf() 函数找到空格字符的索引,然后在 substring() 函数中使用它拆分字符串。

如果在给定字符串中找不到索引,indexOf() 函数将返回 -1。

例子:

String My_S = "hello world";

void setup() { Serial.begin(9600); }
void loop() {
  int index = My_S.indexOf(' ');
  String sub_S = My_S.substring(0, index);
  Serial.println(index);
  Serial.println(sub_S);
  delay(1000);
}

输出:

5
hello

在上面的代码中,变量 index 包含给定字符串中存在的空格字符的索引。如你所见,我们在串行监视器窗口上显示了索引和字符串拆分的结果。

我们还可以根据行数拆分字符串。

例如,如果一个字符串包含多行文本,我们想要拆分并将每一行作为一个单独的字符串。

我们可以使用 indexOf('\n') 函数来查找新行的索引并相应地拆分给定的字符串。

indexOf() 函数从给定字符串的开头开始搜索索引。但是,我们也可以使用 lastIndexOf() 函数,它从字符串末尾开始搜索索引。

作为第二个参数,我们还可以在 lastIndexOf() 函数中传递起始索引。例如,让我们拆分一个包含三行的字符串,获取最后一行,并将其显示在串行监视器窗口上。

例子:

String My_S = "hello world\nGreetings\nPeople";

void setup() {
  Serial.begin(9600);
  Serial.println(My_S);
}
void loop() {
  int index = My_S.lastIndexOf('\n');
  int length = My_S.length();
  String sub_S = My_S.substring(index, length);
  Serial.println(sub_S);
  delay(100000);
}

输出:

hello world
Greetings
People

People

我们在上面的代码中使用了 lastIndexOf() 函数,因为我们只想获取给定字符串中存在的最后一行文本。前三行是输出中给定的字符串,第四行是字符串拆分的结果。

我们使用 length() 函数来获取给定字符串的长度,该长度将用作 substring() 中的结束索引值。我们使用 delay() 函数在代码执行中添加一些延迟,因为循环将重复该过程。

如果我们只想进行拆分,我们可以在 setup() 函数中编写代码,该函数只运行一次。

我们可以根据任何字符拆分字符串。我们只需要使用 indexOf() 函数找到它的索引。

我们可以使用 substring() 函数拆分字符串。假设我们想分别获取给定字符串中的所有行。我们必须获取一行,将剩余的字符串保存在一个变量中,然后使用循环再次执行相同的操作,直到提取所有行。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Arduino 中停止循环

发布时间:2024/03/13 浏览次数:166 分类:C++

可以使用 exit(0),无限循环和 Sleep_n0m1 库在 Arduino 中停止循环。

Arduino 复位

发布时间:2024/03/13 浏览次数:165 分类:C++

可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。

Arduino 的字符转换为整型

发布时间:2024/03/13 浏览次数:116 分类:C++

可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。

Arduino 串口打印多个变量

发布时间:2024/03/13 浏览次数:166 分类:C++

可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。

Arduino if 语句

发布时间:2024/03/13 浏览次数:82 分类:C++

可以使用 if 语句检查 Arduino 中的不同条件。

Arduino ICSP

发布时间:2024/03/13 浏览次数:184 分类:C++

ICSP 引脚用于两个 Arduino 之间的通信以及对 Arduino 引导加载程序进行编程。

使用 C++ 编程 Arduino

发布时间:2024/03/13 浏览次数:100 分类:C++

本教程将讨论使用 Arduino IDE 在 C++ 中对 Arduino 进行编程。

Arduino 中的子程序

发布时间:2024/03/13 浏览次数:69 分类:C++

可以通过在 Arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便