reference:language:string
no way to compare when less than two revisions
差别
这里会显示出您选择的修订版和当前版本之间的差别。
前一修订版 | |||
— | reference:language:string [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== string(字符串) ====== | ||
+ | |||
+ | ===== 描述 ===== | ||
+ | |||
+ | 文本字符串可以有两种表现形式。你可以使用字符串数据类型,或者你可以做一个字符串,由char类型的数组和空终止字符(' | ||
+ | ===== 举例 ===== | ||
+ | |||
+ | 以下所有字符串都是有效的声明。 | ||
+ | <code cpp> | ||
+ | char Str1[15]; | ||
+ | char Str2[8] = {' | ||
+ | char Str3[8] = {' | ||
+ | char Str4[ ] = " | ||
+ | char Str5[8] = " | ||
+ | char Str6[15] = " | ||
+ | </ | ||
+ | ==== 声明字符串的解释 ==== | ||
+ | |||
+ | * 在Str1中 声明一个没有初始化的字符数组 | ||
+ | * 在Str2中 声明一个字符数组(包括一个附加字符),编译器会自动添加所需的空字符 | ||
+ | * 在Str3中 明确加入空字符 | ||
+ | * 在Str4中 用引号分隔初始化的字符串常数,编译器将调整数组的大小,以适应字符串常量和终止空字符 | ||
+ | * 在Str5中 初始化一个包括明确的尺寸和字符串常量的数组 | ||
+ | * 在Str6中 初始化数组,预留额外的空间用于一个较大的字符串 | ||
+ | ===== 空终止字符 ===== | ||
+ | |||
+ | 一般来说,字符串的结尾有一个空终止字符(ASCII代码0)。以此让功能函数(例如Serial.pring())知道一个字符串的结束。否则,他们将从内存继续读取后续字节,而这些并不属于所需字符串的一部分。 | ||
+ | |||
+ | 这意味着,你的字符串比你想要的文字包含更多的个字符空间。这就是为什么Str2和Str5需要八个字符,即使“ocrobot”只有七个字符 - 最后一个位置会自动填充空字符。str4将自动调整为八个字符,包括一个额外的空。在Str3的,我们自己已经明确地包含了空字符(写入' | ||
+ | |||
+ | 需要注意的是,字符串可能没有一个最后的空字符(例如在Str2中您已定义字符长度为7,而不是8)。这会破坏大部分使用字符串的功能,所以不要故意而为之。如果你注意到一些奇怪的现象(在字符串中操作字符),基本就是这个原因导致的了。 | ||
+ | ==== 单引号?还是双引号? ==== | ||
+ | |||
+ | 定义字符串时使用双引号(例如“ABC”),而定义一个单独的字符时使用单引号(例如' | ||
+ | ==== 包装长字符串 ==== | ||
+ | |||
+ | 你可以像这样打包长字符串: | ||
+ | char myString[] = "This is the first line" | ||
+ | " this is the second line" | ||
+ | " etcetera"; | ||
+ | |||
+ | ==== 字符串数组 ==== | ||
+ | |||
+ | 当你的应用包含大量的文字,如带有液晶显示屏的一个项目,建立一个字符串数组是非常便利的。因为字符串本身就是数组,它实际上是一个两维数组的典型。 | ||
+ | |||
+ | 在下面的代码," | ||
+ | ===== 样例 ===== | ||
+ | <code cpp> | ||
+ | char* myStrings[]={ | ||
+ | "This is string 1", "This is string 2", "This is string 3", | ||
+ | "This is string 4", "This is string 5"," | ||
+ | |||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | for (int i = 0; i < 6; i++){ | ||
+ | Serial.println(myStrings[i]); | ||
+ | delay(500); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
reference/language/string.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1