字符常量
字符作为MQL5中的字符串要素是统一字符设置的指数。它们是可以转换成整数的十六进制值,可以像加减法定理一样进行整数操作 。
引号里的任何单一特质和十六进制的 ASCII 代码’ \x10’ 都能当做字符常量无符号短整型型,例如,0型记录的数值是30,相当于在图标字符中代表调整归零。
示例
void OnStart()
{
//--- 定义字符常量
int symbol_0='0';
int symbol_9=symbol_0+9; // 获得符号 ' 9'
//--- 输出常量值
printf("In a decimal form: symbol_0 = %d, symbol_9 = %d",symbol_0,symbol_9);
printf("In a hexadecimal form: symbol_0 = 0x%x, symbol_9 = 0x%x",symbol_0,symbol_9);
//--- 输入常量成字符串
string test="";
StringSetCharacter(test,0,symbol_0);
StringSetCharacter(test,1,symbol_9);
//--- 这是字符串中看起来像的东西
Print(test);
}
在程序源文本与常量型进行处理时,反斜线符号是编译器的控制字符,,一些符号,例如,单引 号(‘),双引号(“),反斜杠()和控制字符都能被当做以反斜杠()为起点的符号的集合,如下表:
字符名称 | 助记码或者图像 | MQL5中的记录 | 数值 |
---|---|---|---|
新线(换行) | LF | ‘\n’ | 10 |
水平制表符 | HT | ‘\t’ | 9 |
回车 | CR | ‘\r’ | 13 |
反斜杠 | | | ‘\’ | 92 |
单引号 | ’ | ‘\’’ | 39 |
双引号 | “ | ‘\”’ | 34 |
十六进制代码 | hhhh | ‘\xhhhh’ | 1to4十六进制字符 |
十进制代码 | d | ‘\d’ | 从0到65535的十进制代码 |
如果反斜杠后面跟着另一种字符而不是以上描述的类型,结果是未知的。
示例:
void OnStart()
{
//--- 声明字符常量
int a='A';
int b='$';
int c='©'; // 代码 0xA9
int d='\xAE'; // 符号代码®
//--- 输出打印常量
Print(a,b,c,d);
//--- 添加字符到字符串
string test="";
StringSetCharacter(test,0,a);
Print(test);
//--- 成串的替换字符
StringSetCharacter(test,0,b);
Print(test);
//--- 成串的替换字符
StringSetCharacter(test,0,c);
Print(test);
//--- 成串的替换字符
StringSetCharacter(test,0,d);
Print(test);
//--- 字符表示为数字
int a1=65;
int b1=36;
int c1=169;
int d1=174;
//--- 添加字符到字符串
StringSetCharacter(test,1,a1);
Print(test);
//--- 添加字符到字符串
StringSetCharacter(test,1,b1);
Print(test);
//--- 添加字符到字符串
StringSetCharacter(test,1,c1);
Print(test);
//--- 添加字符到字符串
StringSetCharacter(test,1,d1);
Print(test);
}
综上所述,常量(或变量)字符的值是字符表中的指标,指标存在整型,能以不同的方式输出。
void OnStart()
{
//---
int a=0xAE; // 代码 ® 符合于 the '\xAE' 文字
int b=0x24; // 代码 $ 符合于 the '\x24' 文字
int c=0xA9; // 代码 © 符合于 to the '\xA9' 文字
int d=0x263A; // 代码 ? 符合于 the '\x263A' 文字 //--- 显示值
Print(a,b,c,d);
//--- 添加字符到字符串
string test="";
StringSetCharacter(test,0,a);
Print(test);
//--- 成串的替换字符
StringSetCharacter(test,0,b);
Print(test);
//--- 成串的替换字符
StringSetCharacter(test,0,c);
Print(test);
//--- 成串的替换字符
StringSetCharacter(test,0,d);
Print(test);
//--- 合适的代码
int a1=0x2660;
int b1=0x2661;
int c1=0x2662;
int d1=0x2663;
//--- 添加黑桃字符
StringSetCharacter(test,1,a1);
Print(test);
//--- 添加红心字符
StringSetCharacter(test,2,b1);
Print(test);
//--- 添加方片字符
StringSetCharacter(test,3,c1);
Print(test);
//--- 添加梅花字符
StringSetCharacter(test,4,d1);
Print(test);
//--- 成串的字符文字示例
test="Queen\x2660Ace\x2662";
printf("%s",test);
}
字符型的内部表示法是 无符号短整型 ,字符常量能够接受从0到65535的值。