跳到主要内容

format

注意

这个$函数以小写字母开头。

描述

该函数用于格式化字符串,支持将变量和其他字符串嵌入目标字符串。

参数名描述
output[]存储格式化结果的字符串缓冲区
len输出缓冲区的最大容量(包含终止符)
const format[]格式化字符串模板
{Float, _}:...不定数量参数(支持任意标签类型)

返回值

此函数不返回特定值。

格式说明符

格式符说明
%i无符号整数
%d有符号整数
%s字符串
%f浮点数
%cASCII 字符
%x十六进制数
%b二进制数
%%百分号转义
%qSQLite 文本转义(0.3.7 R2 版本新增)

参数顺序需与占位符顺序严格对应,例如 "年龄:%i 岁" 中的 %i 将被整数变量替换。

可选字段控制:

  • % 和格式符之间添加数字指定字段宽度(如 %10d
  • 对浮点数使用 %.2f 形式控制小数位数(保留两位小数)

示例

new result[128];
new number = 42;
format(result, sizeof(result), "数值为 %i。", number); // 数值为 42

new string[] = "简单消息";
format(result, sizeof(result), "这是%s,包含数值%i。", string, number);
// 这是简单消息,包含数值42

new string[64];
format(string, sizeof(string), "您的得分:%d", GetPlayerScore(playerid));
SendClientMessage(playerid, 0xFF8000FF, string); // 发送橙色消息给玩家

new string[32];
new hour, minute, second;
gettime(hour, minute, second);
format(string, sizeof(string), "当前时间:%02d:%02d:%02d", hour, minute, second);
// 输出示例:当前时间:09:45:02

new string[32];
format(string, sizeof(string), "43%s的衬衫是黑色。", "%%");
SendClientMessage(playerid, 0xFF8000FF, string); // 显示"43%的衬衫是黑色"

注意事项

注意
  • 本函数不支持压缩字符串(packed strings)

相关函数

  • print: 在服务器日志和控制台中输出基础信息
  • printf: 在服务器日志和控制台中输出格式化信息