我想将整数值转换为字符串字符,如下所示:
0
至"a"
1
至"b"
依此类推
26
至"z"
有没有办法在没有大案例陈述的 e 中执行此操作?
注意:e
是强类型的,并且不可能对字符串值进行任何类型的算术运算。还没有char
类似的类型。
另一个节点:对于那些对我的问题进行投票的C / C ++热门人来说,这并不像你想象的那样容易出问题。
答案 0 :(得分:1)
您可以定义一个与字母表对应的新枚举类型,并使用枚举值由int值支持的事实,将整数列表转换为枚举列表或字符串。
考虑以下示例:
<'
type chars : [a, b, c, d, e, f, g];
extend sys {
run() is also {
var l : list of int[0..6];
var s: string = "";
gen l keeping {it.size() == 5};
print l;
for each in l { print it.as_a(chars); };
for each in l { s = append(s, it.as_a(chars)); };
print s;
};
};
'>
此示例的输出将为:
l =
0. 4
1. 0
2. 6
3. 4
4. 5
it.as_a(chars) = e
it.as_a(chars) = a
it.as_a(chars) = g
it.as_a(chars) = e
it.as_a(chars) = f
s = "eagef"
请注意,您可以为枚举中的元素指定自定义值。这样,您就可以将标准ASCII值分配给枚举元素。
type chars : [a=10, b=11, c=12, d=13, e=14, f=15, g=16];
答案 1 :(得分:1)
您可以这样做:
{0c"a"+my_num}.as_a(string)
0c"a"
表示字母&#39; a&#39;的ASCII值。将as_a()
数字列表(实际上是字节)转换为字符串会创建一个字符串,其中每个字符都具有相应列表元素的ASCII值。