CPAL脚本自动化测试 ———— 数学函数&字符串处理函数

CAPL语言也提供了一些常用的计算函数,基本上可以满足仿真工程的计算要求。此外,字符与字符串的处理一直都是编程语言常遇到的问题,这边CAPL语言也集成了一些函数给到用户,有很多函数都是借鉴了C语言中的函数。下表列举了我常用到的一些数学函数和字符串函数,以及使用用例、用例输出结果,希望对大家能有帮助。

函数功能用例结果
arccos计算反余弦值double x; x = arccos(0);90°
arcsin计算反正弦值double x;x = arcsin(1);90°
arctan计算正切值double x;x = arctan(1);
_ceil求出不小于的最小整数float x;x = _ceil(3.6);4
_floor求出不大于的最大整数float x;x = _floor(3.6);3
_Log取自然对数函数double x;x = _log(1.0);0
_Log10取以10为底的对数函数double x;x = _log10(100.0);2
_max取两个数值中的最大值float result;result = _max(1.0, _max(-3.0, 5.2));5.2
_min取两个数值中的最小值float result;result = _min(1.0, _min(-3.0, 5.2));-3.0
_pow计算次方double result;result = _pow(2.0, 3.0);8
_round求出最近整数long result;result = _round(2.4); result = _round(-3.5);2,-4
abs求绝对值long x;x = abs(15);15
cos求余弦值double x;x = cos(PI);-1
exp求e的次方double x;x = exp(5);148.413159
random产生随机数dword x;x = random(100);随机输出0~100的整数
sin求正弦值double x;x = sin(PI);0
sqrt求开二次方值double x;x = sqrt(4.0);2
_atoi64将字符数组转换为64位整数int64 i;i = _atoi64("12345678901")依据输出格式来定最终输出结果
_gcvt将双精度转换成指定长度的字符串char s[15];float val1 = 3.1415926535; _gcvt(val1, 10, s);val1=3.141593 s=3.141592654
atodbl将字符串转换成双精度double d;d = atodbl(" -3.7"); d = atodbl("0x1F");d = atodbl("1.3E2");-3.7,31.0,130
atol将字符串转换成长整数long z2;z2 = atol("0xFF");255
ltoa将长整数转换为不同进制数的字符串char s1[9];ltoa(z,s1,2);s1= 11111111
snprintf将格式化的数据写入某哦个字符串中char buffer[100], str[7] = "Vector";long i;i = snprintf(buffer,elcount(buffer),"String: %s\n", str);String: Vector
strlen返回字符串长度long length;char buffer[100] = "CANalyzer";length = strlen(buffer);9
strncat在字符串结尾追加len个字符char s[20];strncpy(s, "Vector", 10); strncat(s, " CANoe", 11);Vector CAN
strcmp字符串长度比较操作char s1[7] = "Vector";char s2[7] = "Vector";strncmp(s1,s2,strlen(s1))0 — 长度相等;±1 — 长度不相等
strncpy字符串复制操作char s1[7] = "Vector"; char s2 [32];strncpy (s2,s1,elcount(s2));s2 is “Vector”
strstr判断字符串2是否是字符串1的子集long pos;char s1[18] = "Vector Informatik";char s2[11] = "Informatik";pos = strstr(s1, s2);pos = 7
strtod将字符串转换为浮点数char s[20] = "2.4E3";double number2;res = strtod(s, number2);write("number2: %g", number2);number: 2400
strtol将字符串转换为32位整数char s[20] = "0xFF";long number1; res = strtol(s, number1);write("number1: %d, ", number1;number1: 255
strtoll将字符串转换为64位整数char s[20] = "0xFF";long number1; res = strtol(s, number1);write("number1: %d, ", number1;number1: 255
strtoul将字符串转换为无符号32位整数char s[20] = "0xFF";long number1; res = strtol(s, number1);write("number1: %d, ", number1;number1: 255
strtoull将字符串转换为无符号64位整数char s[20] = "0xFF";long number1; res = strtol(s, number1);write("number1: %d, ", number1;number1: 255
substr_cpy复制源字符串中子字符串给目标字符串char s1[7];char s2[18] = "Vector Informatik";substr_cpy(s1, s2, 0, 6, elcount(s1));s1: Vector
str_match_regex检查字符串是否与正则表达式模式完全匹配char buffer[70] = "Vector Informatik";long res;res = str_match_regex(buffer, "Vector [A-Za-z]*");res = 1(匹配)
str_replace字符串替换操作char buffer[70] = "Vector Informatik";str_replace(buffer, "Informatik", "CANoe");write(buffer);Vector CANoe
strstr_regex字符串中搜索正则表达式模式。char buffer[70] = "Vector Informatik";long res;res = strstr_regex(buffer, "Inf[a-z]*");res = 7 (Inf的起始位)
toLower字符(串)小写char buffer[20];toLower(buffer, "Vector", elcount(buffer));vector
toUpper字符(串)大写char buffer[20];toUpper(buffer, "Vector", elcount(buffer));VETOR
  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值