MT4智能交易编程教程-字符常量
字符常量 字符作为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' | 13 | 水平制表符 | HT | '\t' | 9 | 回车 | CR | '\r' | 10 | 反斜杠 | \ | '\\' | 92 | 单引号 | ' | '\'' | 39 | 双引号 | " | '\"' | 34 | 十六进制代码 | hhhh | '\xhhhh' | 1 to 4 十六进制字符 | 十进制代码 | d | '\d' | 从 0 到 65535的十进制代码 |
如果反斜杠后面跟着另一种字符而不是以上描述的类型,结果是未知的。 示例 - void OnStart()
- {
- //--- 声明字符常量
- int a='A';
- int b='综上所述,常量(或变量)字符的值是字符表中的指标,指标存在整型,能以不同的方式输出。[code]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的值。
;
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);
}
[/code]综上所述,常量(或变量)字符的值是字符表中的指标,指标存在整型,能以不同的方式输出。- 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的值。
|