目录

字符串转换为数字

_atoi64 — int64整数型

代码示例

stroll — 64位整数型(strtoull — 64位无符号整数)

stroll代码示例

strtoull代码示例

strol — 32位整数型(strtoul — 32位无符号整数)

strol示例函数

strtoul代码示例

atodbl — double双精浮点型

代码示例

strtod — double双精浮点型

代码示例

atol — 长整型

代码示例

数字转化为字符串

_gcvt

代码示例

ltoa

示例代码

在日常的脚本开发中,我们不可避免的会涉及到字符串和数据之间的转换,在Python中比较简单,我们可以直接使用数据转换,但是在CPAL中,所有的字符串均体现在char型数组中,那我们如何将这些数据进行转换呢?这是我们今天说的话题,字符串和数据之间的转换

如何将字符串转化为数字_判断c是否为数字字符_json转化字符数组

编辑

字符串转换为数字_atoi64 — int64整数型

功能:将字符串转换为64位整数

s:待转换数字的字符串

返回值:字符串转换后的数字,如果字符串无法转换为数字,则返回值为0。它是溢出时最大的正/负数字。

代码示例

int64 i;i = _atoi64("12345678901")write("输出字符串转换的数值:0x%x", i)// 输出字符串转换的数值:0x2DFDC1C35

stroll — 64位整数型(strtoull — 64位无符号整数)

功能:将字符串转换为64位整数(strtoull,将字符串转换为32位无符号整数)

说明:

字符串类型:

注意:如果字符串中前面为空格或制表符则忽略

s:被转换的字符串

result:转换为数字的结果存放

startIndex:从字符串s中startIndex位开始转换为数据

返回值:

stroll代码示例

char s[20] = "123 0xFF";int64 number1, number2;int res;res = strtoll(s, number1);write("number1: %I64d, res: %d", number1, res); res = strtoll(s, res, number2);write("number2: %I64d, res: %d", number2, res); 
//运行结果// number1: 123, res: 3// number2: 255, res: 8strtoull代码示例char s[20] = "123 0xFF";int64 number1, number2;int res;res = strtoull(s, number1);write("number1: %I64d, res: %d", number1, res); res = strtoull(s, res, number2);write("number2: %I64d, res: %d", number2, res);
//运行结果// number1: 123, res: 3// number2: 255, res: 8

strol — 32位整数型(strtoul — 32位无符号整数)

功能:将字符串转换为32位整数(strtoul,将字符串转换为32位无符号整数)

说明:

字符串类型:

注意:如果字符串中前面为空格或制表符则忽略

s:被转换的字符串

result:转换为数字的结果存放

startIndex:从字符串s中startIndex位开始转换为数据

返回值:

strol示例函数

char s[20] = "123 0xFF";long number1, number2;int res;res = strtol(s, number1);write("number1: %d, res: %d", number1, res); res = strtol(s, res, number2);write("number2: %d, res: %d", number2, res); 
//输出结果//number1: 123, res: 3//number2: 255, res: 8strtoul代码示例char s[20] = "123 0xFF";dword number1, number2;int res;res = strtoul(s, number1);write("number1: %u, res: %d", number1, res); res = strtoul(s, res, number2);write("number2: %u, res: %d", number2, res);
//输出结果// number1: 123, res: 3// number2: 255, res: 8

atodbl — double双精浮点型

功能:将字符串转换为数字(浮点型)

说明:该函数将字符串s转换为双数。通常,基数为十进制,必须具有以下格式:

1、[空白][符号][数字][.数字][{d|D|e|E}[符号]数字]

2、字符串解析在第一个不兼容字符处停止,如果字符串无法转换为数字,则返回0.0;

3、字符串以0x开头,则使用的基数为16,只能读入整数。

s:待转换的字符串

代码示例

double d;d = atodbl("  -3.7");    // -3.7d = atodbl("0x1F");      // 31.0d = atodbl("1.3E2");     // 130.0

strtod — double双精浮点型

功能:将字符串转换为浮点数。

说明:将字符串转换为浮点数,

如果基数字符之前没有数字,则基数字符之后必须至少出现一个数字;十进制数字后面可以跟一个指数,指数由一个介绍字母(d、d、e或e)和一个可选的有符号整数组成;如果既没有出现指数部分也没有出现基数字符,则假定基数字符跟在字符串的最后一个数字之后。

s:待转换的字符串

result:转换后的值。如果字符串无法转换为数字,则值为0。这是溢出情况下可能的最大正/负数。

startIndex:转换开始的位置(在字符串s中的位置)。

返回值:

-2:如果转换开始的位置大于字符串的长度则返回-2。

-1:发生溢出。

others:返回数字后第一个字符的索引。

代码示例

char s[20] = "-1.23 2.4E3";double number1, number2;int res;res = strtod(s, number1);write("number1: %g, res: %d", number1, res); res = strtod(s, res, number2);write("number2: %g, res: %d", number2, res); 
//输出结果// number1: -1.23, res: 5// number2: 2400, res: 11

atol — 长整型

功能:将字符串转换为long型数字。

说明:将字符串s转换为long型数字如何将字符串转化为数字,默认基数为十进制;如果字符串以0x开始如何将字符串转化为数字,使用基数16,不读取前导空格。

s:带转换的字符串

返回值:转换后的long型数字;如果字符串不是数字则返回0

代码示例

long z1;long z2;z1 = atol("200");z2 = atol("0xFF");write("打印输出数字:z1 = %d z2 = %d", z1, z2);Result://输出结果//打印输出数字:z1 = 200, z2 = 255

如何将字符串转化为数字_判断c是否为数字字符_json转化字符数组

编辑数字转化为字符串_gcvt

编辑

功能:将数字转换为字符串

说明:数字val被转换为包含小数点和可能的符号字节的字符串s。

val:要转换的数字(浮点型)。

digits:有效位数。

s:字符串,包含转换后的数字;如果字符串大小太小,则字符串保持不变。

代码示例

char s[15];
float val1 = 3.1415926535;float val2 = 271828.18284;_gcvt(val1, 10, s);writeToLogEx("val1: %f: s: %s", val1, s);_gcvt(val2, 9, s);writeToLogEx("val2: %f: s: %s", val2, s);_gcvt(val2, 5, s);writeToLogEx("val2: %f: s: %s", val2, s);// 字符串大小太小,字符串保持不变_gcvt(val2, 20, s); writeToLogEx("val2: %f: s: %s", val2, s);
//输出结果//val1: 3.141593: s: 3.141592654//val2: 271828.182840: s: 271828.182//val2: 271828.182840: s: 2.7183e+005//val2: 271828.182840: s: 2.7183e+005

ltoa

功能:将数字转换为字符串。

说明:数字val被转换为字符串s。在这种情况下,base表示2到36之间的数字基数。s必须足够大才能接受转换后的数字!

val:待转换字符串

s:转换完成存放字符串的数组

base:进制数值

示例代码

char s1[9];char s2[9];ltoa(z,s1,2);ltoa(z,s2,10);write("z: %d s1= %s",z, s1);write("z: %d s2= %s",z, s2);
输出结果:
z: 255 s1= 11111111z: 255 s2= 255

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889