字符串是用于存储字符和一系列字符的数据类型。Arduino中字符串的工作原理与C语言编程中的 "char "相似。存储在Arduino中的值可以显示在LCD上,也可以显示在串行显示器输出上。
Arduino中使用的字符串有两种类型,在本篇文章中进行了讨论。我们将通过实例来讨论字符串的功能。
Arduino中的字符串有哪些类型?
在Arduino中,字符串被分为两种类型,即对象字符串和字符字符串。两者的区别在于,"对象字符串 "用于存储一系列的字符,而字符字符串也被称为c-strings,以字符的形式存储字符串。
为了更清楚地了解它,请考虑下面的Arduino代码。
void setup(){
Serial.begin(9600);
String Title="This is LinuxHint";
Serial.println(Title);
}
void loop(){
}

上述Arduino代码的输出。

在上面的代码中,我们声明了一个对象字符串;"Title "并存储 "This is LinuxHint"。在Serial.begin(9600)的帮助下,我们通过USB端口以9600的速率初始化了与Arduino的串行通信。并使用串行通信在串行监视器输出的 "Title "中打印存储的值。
同样地,使用字符串来存储数值。
void setup(){
Serial.begin(9600);
char Title[]="This is LinuxHint";
Serial.println(Title);
}
void loop(){
}

对上述输出的解释是:我们使用char数据类型,并在数组的帮助下将 "This is LinuxHint "存储在Title变量中。
Arduino中字符串的功能
在Arduino中,有不同的字符串内置函数,这些函数接受两个字符串的输入,在执行一些特定的功能后,返回单一的输出。其中一些重要的函数是。
concat():这个函数用于将两个字符串连接起来,形成一个单一的字符串,例如,我们有两个字符串:string_A和string_B。我们将合并这两个字符串,这个函数的结果将用代码显示在串行显示器的输出上。
void setup(){Serial.begin(9600);
String string_A, string_B, string_C;
string_A="This is LinuxHint";
string_B="You are reading Arduino tutorials";
string_A.concat("");
string_A.concat(string_B);
Serial.println(string_A);
}
void loop(){
}

在上面的代码中,我们首先声明了三个字符串数据类型的变量。在string_A和string_B中存储一些值,然后我们使用concat()函数将string_A和string_B连接起来。concat()函数将字符串与另一个字符串连接起来,在上面的代码中,我们在string_A中加入一些空格,然后在string_A中加入string_B的值。最后,使用串行通信,我打印了结果。
**length()。**这个函数用于计算特定字符串的长度,它计算字符串中使用的字符数并返回整数值。请看一个例子。
String arr="Welcome to LinuxHint!";void setup() {
Serial.begin(9600);
Serial.print("String length:");
int arr_len= arr.length();
Serial.println(arr_len);
}
void loop(){
}

上面的代码显示字符串的长度是21。
toUpperCase()和toLowerCase()。我 们可以使用这些函数来改变字符串的大小写敏感性。我们将考虑一个例子,在这个例子中,我们将使用toUpperCase()函数将字符串的大小写敏感性改为大写。
void setup(){Serial.begin(9600);
String string_A;
string_A="This is LinuxHint";
string_A.toUpperCase();
Serial.println(string_A);
}
void loop(){
}

同样地,我们可以使用 "toLowerCase() "函数将字符串的值改为小写。
compareTo()。 这个函数用来找出字符串的长度,它根据字符串的字符来进行比较。考虑字符的ASCII值,这意味着我们知道 "a "在 "b "之前,但它在 "A "之后,因为 "a "的ASCII代码是97,"A "是65。请看一个例子。
void setup(){Serial.begin(9600);
String string_A, string_B, string_C;
string_A="This is LinuxHint";
string_B="You are reading Arduino tutorials";
string_C="This is LinuxHint";
Serial.println("Comparison result of string_A with string_B: ");
Serial.println(string_A.compareTo(string_B));
Serial.println("Comparison result of string_A with string_C: ");
Serial.println(string_A.compareTo(string_C));
}
void loop(){
}
从输出中显示的结果得知,string_A和string_c是相等的,所以它返回 "0",在string_A和string_B的比较中,"-5 "意味着string_A的值在string_B的值之前。
还有一些与字符串有关的其他函数。
| 函数 | 解释 |
|---|---|
| charAt(n) | 该函数用于访问字符串中的任何特定字符。 |
| endsWith() | 如果两个字符串的结尾都是相同的字符,则返回true。 |
| equals() | 如果两个字符串都相等,则返回true。应该注意的是,这个函数是区分大小写的,这意味着 "hammad "和 "HAMMAD "是不相等的。 |
| equalsignorecase() | 它的工作原理与equals()函数类似,但它不区分大小写,这意味着 "hammad "和 "HAMMAD "都是相等的。 |
| replace() | 它将所有字符串A的实例替换为字符串B的实例。 |
| startsWith() | 如果两个字符串以相同的字符开头,则返回true。 |
| remove() | 它用于从任何特定的索引中删除字符串中的任何字符。 |
| reserve() | 它为在内存中操作字符串保留一个缓冲区。 |
| toCharArray | 它将字符串的全部字符复制到缓冲区中。 |
| toInt | 它用于将字符串转换为整数。 |
| trim() | 它用于修剪字符串的任何部分。 |
总结
字符串在Arduino中被用来存储一系列的字符,这些字符可以被用于许多目的,例如在Arduino的LCD界面上显示输出。在这篇文章中,我们已经用例子解释了两种类型的字符串。同时,详细讨论了对象字符串中使用的一些重要功能。