Adding Strings together 添加字节

这段代码是一个Arduino示例程序,用于演示如何将字符串与其他数据类型(如整数、长整数、字符和字符串)拼接在一起。这种操作在编程中称为字符串连接(concatenation)。这种方法在需要动态生成字符串时非常有用,例如在串行通信、LCD显示或网络通信中。

/*
  Adding Strings together

 Examples of how to add strings together
 You can also add several different data types to string, as shown here:

 created 27 July 2010
 modified 2 Apr 2012
 by Tom Igoe

 http://arduino.cc/en/Tutorial/StringAdditionOperator

 This example code is in the public domain.
 */

// declare three strings:
String stringOne, stringTwo, stringThree;

void setup() {
  // initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  stringOne = String("stringThree = ");
  stringTwo = String("this string");
  stringThree = String ();
  // send an intro:
  Serial.println("\n\nAdding strings together (concatenation):");
  Serial.println();
}

void loop() {
  // adding a constant integer to a string:
  stringThree =  stringOne + 123;
  Serial.println(stringThree);    // prints "stringThree = 123"

  // adding a constant long interger to a string:
  stringThree = stringOne + 123456789;
  Serial.println(stringThree);    // prints " You added 123456789"

  // adding a constant character to a string:
  stringThree =  stringOne + 'A';
  Serial.println(stringThree);    // prints "You added A"

  // adding a constant string to a string:
  stringThree =  stringOne +  "abc";
  Serial.println(stringThree);    // prints "You added abc"

  stringThree = stringOne + stringTwo;
  Serial.println(stringThree);    // prints "You added this string"

  // adding a variable integer to a string:
  int sensorValue = analogRead(A0);
  stringOne = "Sensor value: ";
  stringThree = stringOne  + sensorValue;
  Serial.println(stringThree);    // prints "Sensor Value: 401" or whatever value analogRead(A0) has

  // adding a variable long integer to a string:
  long currentTime = millis();
  stringOne = "millis() value: ";
  stringThree = stringOne + millis();
  Serial.println(stringThree);    // prints "The millis: 345345" or whatever value currentTime has

  // do nothing while true:
  while (true);
}

功能概述

硬件部分

  • 使用Arduino开发板连接到计算机,通过串行通信发送数据。

软件部分

  • 演示如何将不同数据类型(如整数、长整数、字符和字符串)拼接到字符串中。

  • 使用Serial.println()将拼接后的字符串发送到串行监视器。

代码逐行解释

定义变量

String stringOne, stringTwo, stringThree;
  • 定义三个String类型的变量,用于存储和拼接字符串。

setup() 函数

void setup() {
  // 初始化串行通信,波特率为9600
  Serial.begin(9600);
  while (!Serial) {
    ; // 等待串行端口连接。仅对Leonardo等板子需要
  }

  // 初始化字符串变量
  stringOne = String("stringThree = ");
  stringTwo = String("this string");
  stringThree = String();
  // 发送介绍信息
  Serial.println("\n\nAdding strings together (concatenation):");
  Serial.println();
}
  • Serial.begin(9600):初始化串行通信,设置波特率为9600。

  • while (!Serial):等待串行端口连接。对于某些Arduino板子(如Leonardo),在串行端口未连接时,程序会卡在这里。

  • stringOnestringTwostringThree:初始化字符串变量。

  • Serial.println():发送介绍信息到串行监视器。

loop() 函数

void loop() {
  // 添加一个常量整数到字符串
  stringThree = stringOne + 123;
  Serial.println(stringThree);    // 打印 "stringThree = 123"

  // 添加一个常量长整数到字符串
  stringThree = stringOne + 123456789;
  Serial.println(stringThree);    // 打印 "stringThree = 123456789"

  // 添加一个常量字符到字符串
  stringThree = stringOne + 'A';
  Serial.println(stringThree);    // 打印 "stringThree = A"

  // 添加一个常量字符串到字符串
  stringThree = stringOne + "abc";
  Serial.println(stringThree);    // 打印 "stringThree = abc"

  // 添加两个字符串
  stringThree = stringOne + stringTwo;
  Serial.println(stringThree);    // 打印 "stringThree = this string"

  // 添加一个变量整数到字符串
  int sensorValue = analogRead(A0);
  stringOne = "Sensor value: ";
  stringThree = stringOne + sensorValue;
  Serial.println(stringThree);    // 打印 "Sensor Value: 401" 或其他 `analogRead(A0)` 的值

  // 添加一个变量长整数到字符串
  long currentTime = millis();
  stringOne = "millis() value: ";
  stringThree = stringOne + millis();
  Serial.println(stringThree);    // 打印 "millis() value: 345345" 或其他 `millis()` 的值

  // 无限循环,什么也不做
  while (true);
}
  • stringThree = stringOne + 123:将常量整数123拼接到stringOne,结果存储在stringThree中。

  • Serial.println(stringThree):将拼接后的字符串发送到串行监视器。

  • stringThree = stringOne + 123456789:将常量长整数123456789拼接到stringOne

  • stringThree = stringOne + 'A':将常量字符'A'拼接到stringOne

  • stringThree = stringOne + "abc":将常量字符串"abc"拼接到stringOne

  • stringThree = stringOne + stringTwo:将两个字符串拼接在一起。

  • int sensorValue = analogRead(A0):读取模拟输入引脚A0的值。

  • stringThree = stringOne + sensorValue:将变量整数sensorValue拼接到stringOne

  • long currentTime = millis():获取自程序启动以来的毫秒数。

  • stringThree = stringOne + millis():将变量长整数millis()拼接到stringOne

  • while (true):无限循环,什么也不做,防止程序退出。

工作原理

初始化

  • setup()函数中,初始化串行通信,设置波特率为9600。

  • 初始化字符串变量。

字符串拼接

  • loop()函数中,演示了如何将不同数据类型拼接到字符串中。

  • 使用Serial.println()将拼接后的字符串发送到串行监视器。

无限循环

  • 使用while (true)防止程序退出。

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)