简单字符串转数字工具函数
- 支持复数, 自动去除字符串中空白字符
- 如果其中有除负号之外的特殊字符,将转换失败,并返回(ATOI_RESULT)为0,否则自动转换返回数值保存在(ATOI_RESULT)中
代码
变量
{
全局:
0: test
玩家:
// ATOI 参数 -> 需要转换为数字的字符串原串
59: ATOI_SOURCE_STRING
60: ATOI_LOOP_CHAR
61: ATOI_CURRENT_CHAR
// ATOI返回值 -> 转换完毕的数字
62: ATOI_RESULT
63: ATOI_IS_FU
64: ATOI_LOOP_CHECK_NUMBER
65: ATOI_ADD_OK
66: add_temp
}
子程序
{
0: ATOI
}
规则("// 子程序 - ATOI")
{
事件
{
子程序;
ATOI;
}
动作
{
// 此函数用来将字符串转换为数字,当其中出现非法字符的时候,返回值为0,否则将返回转换后的数字
"// 清空result"
事件玩家.ATOI_RESULT = 0;
事件玩家.ATOI_IS_FU = 假;
"// 去除空白字符"
事件玩家.ATOI_SOURCE_STRING = 字符串替换(事件玩家.ATOI_SOURCE_STRING, 自定义字符串(" "), 自定义字符串(""));
For 玩家变量(事件玩家, ATOI_LOOP_CHAR, 0, 字符串长度(事件玩家.ATOI_SOURCE_STRING), 1);
事件玩家.ATOI_ADD_OK = 假;
"// 获取当前位置的文字"
事件玩家.ATOI_CURRENT_CHAR = 字符串中字符(事件玩家.ATOI_SOURCE_STRING, 事件玩家.ATOI_LOOP_CHAR);
"// 如果第一个是负号"
If(事件玩家.ATOI_CURRENT_CHAR == 自定义字符串("-") && 事件玩家.ATOI_LOOP_CHAR == 0);
事件玩家.ATOI_IS_FU = 真;
继续;
End;
For 玩家变量(事件玩家, ATOI_LOOP_CHECK_NUMBER, 0, 10, 1);
If(事件玩家.ATOI_CURRENT_CHAR == 自定义字符串("{0}", 事件玩家.ATOI_LOOP_CHECK_NUMBER));
事件玩家.ATOI_RESULT += 事件玩家.ATOI_LOOP_CHECK_NUMBER;
事件玩家.ATOI_ADD_OK = 真;
中断;
End;
End;
If(事件玩家.ATOI_ADD_OK == 假);
事件玩家.ATOI_RESULT = 0;
中断;
End;
If(事件玩家.ATOI_LOOP_CHAR != 字符串长度(事件玩家.ATOI_SOURCE_STRING) - 1);
事件玩家.ATOI_RESULT *= 10;
End;
End;
If(事件玩家.ATOI_IS_FU == 真);
事件玩家.ATOI_RESULT *= -1;
End;
}
}
规则("规则")
{
事件
{
持续 - 全局;
}
动作
{
全局.test[0] = 自定义字符串(" 12 7 9");
全局.test[1] = 自定义字符串(" -12 9 8");
全局.test[2] = 自定义字符串(" 14 +7 9");
全局.test[3] = 自定义字符串(" 14 7 93 4");
}
}
规则("规则")
{
事件
{
持续 - 每名玩家;
双方;
全部;
}
条件
{
按钮被按下(事件玩家, 按钮(互动)) == 真;
}
动作
{
事件玩家.ATOI_SOURCE_STRING = 全局.test[0];
调用子程序(ATOI);
小字体信息(所有玩家(所有队伍), 事件玩家.ATOI_RESULT);
等待(0.250, 无视条件);
事件玩家.ATOI_SOURCE_STRING = 全局.test[1];
调用子程序(ATOI);
小字体信息(所有玩家(所有队伍), 事件玩家.ATOI_RESULT);
等待(0.250, 无视条件);
事件玩家.ATOI_SOURCE_STRING = 全局.test[2];
调用子程序(ATOI);
小字体信息(所有玩家(所有队伍), 事件玩家.ATOI_RESULT);
等待(0.250, 无视条件);
事件玩家.ATOI_SOURCE_STRING = 全局.test[3];
调用子程序(ATOI);
小字体信息(所有玩家(所有队伍), 事件玩家.ATOI_RESULT);
等待(0.250, 无视条件);
"//====================================="
事件玩家.ATOI_SOURCE_STRING = 全局.test[0];
调用子程序(ATOI);
事件玩家.add_temp = 事件玩家.ATOI_RESULT;
等待(0.250, 无视条件);
事件玩家.ATOI_SOURCE_STRING = 全局.test[1];
调用子程序(ATOI);
小字体信息(事件玩家, 自定义字符串("{0}", 事件玩家.add_temp + 事件玩家.ATOI_RESULT));
}
}
- 注意:分享码为亚服
评论
这里空空如也~