15.4.15 字符串操作
15.4.15.1 StrFind
说明: StrFind 用于在字符串中查找,从一个特定位置开始查找属于另一个特定字符集合的位置。
定义:
StrFind(Str, ChPos, Set [\NotInSet]);
-
Str:数据类型 string,表示要查找的字符串。 -
ChPos:数据类型 int,表示开始查找的位置,从 1 开始。如果位置越界,报错提示。 -
Set:数据类型 string,表示要匹配的字符集合。 -
[\NotInSet]:标识符,标识搜索不在匹配的字符集合内的字符。 -
返回值:数据类型 int,表示执行查找得到的第一个字符匹配的位置。如果没有找到,返回字符串长度+1。
示例:
VAR int found;
found = StrFind(“Robotics”, 1, “aeiou”); //2
// 从第 1 个字符“R”开始匹配,发现第 2 个字符“o”在字符集合“aeiou”,返回匹配位置 2。
found = StrFind(“Robotics”, 1, “aeiou” \NotInSet); //1
// 从第 1 个字符“R”开始匹配,发现第 1 个字符“R”不在字符集合“aeiou“,返回匹配位置 1。
15.4.15.2 StrLen
说明: StrLen 用于获取字符串长度。
定义:
StrLen(Str);
-
Str:数据类型:string,表示要计算字符个数的字符串。 -
返回值:数据类型 int,表示当前字符串长度,>=0。
示例:
VAR int num;
num = StrLen(“Robotics”); //8
// 字符串“Robotics“长度为 8。
15.4.15.3 StrMap
说明: StrMap 用于创造一份 string 备份,它其中所有字符都将按照指定映射关系进行替换。映射字符根据位置一一对应,没有映射的字符保持不变。
定义:
StrMap(Str, FromMap, ToMap);
-
Str:数据类型 string,表示原字符串。 -
FromMap:数据类型 string,表示映射的索引部分。 -
ToMap:数据类型 string,表示映射的值部分。 -
返回值:数据类型 string,表示替换得到的字符串。
示例:
VAR string str;
str = StrMap(“Robotics”, “aeiou”, “AEIOU”) //RObOtIcs;
// 对字符串“Robotics“进行字符映射,”aeiou”分别映射成”AEIOU“。
|
使用限制:FromMap 和 ToMap 必须匹配,长度一致。 |
15.4.15.4 StrMatch
说明: StrMatch 用于在字符串中搜索,从指定位置开始,搜索特定格式或字符串,返回匹配的位置。
定义:
StrMatch(Str, ChPos, Pattern);
-
Str:数据类型: string,表示要搜索的字符串。 -
ChPos:数据类型: int,表示起始位置,如果超出字符串长度范围报错。 -
Pattern:数据类型 string,表示要匹配的格式字符串。 -
返回值:数据类型 int,表示匹配字符串首字符所在的位置,如果没有匹配,则返回字符串长度+1。
示例:
VAR int found;
Found = StrMatch(“Robotics”, 1, “bo”) //3;
// 从第 1 个字符开始搜索“bo“,发现第 3 个位置匹配,返回匹配的首字符所在位置 3。
15.4.15.5 StrMemb
说明: StrMemb 用于检查字符串中某个字符是否属于指定的字符集合。
定义:
StrMemb(Str, ChPos, Set);
-
Str:数据类型:string,表示要检查的字符串。 -
ChPos:数据类型:int,表示要检查的字符位置,超出字符串范围报错。 -
Set:数据类型:string,表示要匹配的字符集合。 -
返回值:数据类型 bool,true 表示字符串中指定位置的字符属于指定的字符集合,否则 false。
示例:
VAR bool memb;
memb = StrMemb(“Robotics”, 2, “aeiou”) //true;
// 第 2 个字符 o 属于字符集合“aeiou”中一员,返回 true。
15.4.15.6 StrOrder
说明: StrOrder 用于比较两个字符串,并且返回布尔值。
定义:
StrOrder(Str1, Str2);
-
Str1:数据类型:string,表示第一个字符串值。 -
Str2:数据类型:string,表示第二个字符串值。 -
返回值: 数据类型 bool,当 str1 ⇐ str2 时返回 true,否则 false。
示例:
VAR bool le;
le = StrOrder(“FIRST”, “SECOND”); //true;
le = StrOrder(“FIRSTB”, “FIRST”); //false
15.4.15.7 StrPart
说明: StrPart 用于截取字符串一部分生成一个新的字符串。
定义:
StrPart(Str, ChPos, Len);
-
Str:数据类型:string,表示要被截取的原字符串。 -
ChPos:数据类型 int,表示起始截取位置,当超出字符串范围时报错。 -
Len:数据类型 int,表示要截取的长度。 -
返回值:数据类型 string,表示截取得到的字符串,从指定位置开始截取指定长度的字符串。
示例:
VAR string part;
part = StrPart(“Robotics”, 1, 5); //Robot
// 从第 1 个位置开始截取长度为 5 的字符串,得到“Robot“。
15.4.15.8 StrSplit
说明: StrSplit 可以对字符串进行分割,通过指定分隔符,将字符串分割成字符串数组。
定义:
StrSplit(Str [, separator]);
-
Str:数据类型 string,表示要被分割的原字符串。 -
Separator:数据类型 string,分隔符,该字符串中的所有字符都被看做分隔符,可以缺省,当缺省时,空格作为默认分隔符。 -
返回值:数据类型 string 数组,表示分割得到的字符串数组。
示例:
string str_arr[4] = StrSplit("test1,test2;test3\test4", "\,;");
// 字符串分割结果为四个子串(test1 test2 test3 test4)。
使用限制:
|
15.4.15.9 StrToByte
说明: StrToByte 可以将字符串转换为 byte 类型数据。
定义:
StrToByte(Str, [trans]);
-
Str:数据类型 string,将要进行数据转换的字符串。 -
trans:数据类型枚举,表示字符串的数学进制格式,可用参数为\Bin(二进制)、\Okt(八进制)、\Hex(十六进制)、\Char(字符)以及默认参数(无参数,十进制)。 -
返回值:数据类型:byte,字符串的转换结果。
示例:
例1
Byte NumBin = StrToByte(“10”, \Bin);
Byte NumOkt = StrToByte(“10”, \Okt);
Byte NumBin = StrToByte(“10”);
Byte NumHex = StrToByte(“10”, \Hex);
// 依次将字符串 “10” 按照二进制、八进制、十进制、16 进制转换为 byte 数字,结果依次为 2, 8,10, 16。
例2
Byte NumChar = StrToByte(“0”, \Char);
// 将字符”0”按照字符与 ASCII 的转换关系,转为 48。
使用限制:
|
15.4.15.10 StrToDouble
说明: StrToDouble 可以将字符串转换为 double 类型数据。
定义:
StrToDouble(Str);
-
Str:数据类型:string,将要进行数据转换的字符串。 -
返回值:数据类型:double,字符串的转换结果。
示例:
Double NumDouble = StrToDouble(“3.1415926”);
// 将“3.1415926”字符串转换为 double 类型数据。
使用限制:
|
15.4.15.11 StrToInt
说明: StrToInt 可以将字符串转换为 Int 类型数据。
定义:
StrToInt(Str);
-
Str:数据类型:string,将要进行数据转换的字符串。 -
返回值:数据类型:Int,字符串的转换结果。
示例:
Int NumInt = StrToInt(“99”);
// 将“99”字符串转换为 Int 类型数据。
使用限制:
|
15.4.15.12 StrToDoubleArray
说明: 可以对大量 double 字符串进行类型转换,转换成 double 数组数据。
定义:
StrToDoubleArray(output, input, spilit);
-
output:数据类型 double 数组,转换结果输出。 -
input:数据类型 str 字符串,输入的字符串。 -
spilit:数据类型 str 字符串,字符串的分隔符。 -
返回值:数据类型 int,转换是否遇到异常,-1 错误,0 正常。
示例:
string tmp_ss = "1,2,3,4,5,6,7";
double db_arr[10];
StrToDoubleArray (db_arr, tmp_ss, ",");
// 结果 db_arr = {1,2,3,4,5,6,7,0,0,0}
使用限制:
|