我有一个排名为第二(矩阵)的数组a(i,j),其每个元素都是ASCII字符,例如A
或&
或^
等。当我要翻译时将数组元素转换为其整数代码,例如b(i,j)=ichar('a(i,j)')
,我得到以下Error: Argument of ICHAR at (1) must be of length one
,这很奇怪,因为每个a(i,j)是单个ASCII字符。我可以执行以下操作(让a(1,2)为A):y=a(1,2)
,z=ichar('y')
,(y = A,z = 121),但是随后我松开了数组结构,因为当我尝试打印出[ C0](编译后),我得到b(1,2)=z
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
等等(我有#0 0x7f301bac08da
)
如何形成integer, dimension(:,:), allocatable :: b
,以及如何处理b(i,j)=ichar('a(i,j)')
的选定元素,以便能够在程序中进行进一步的计算?
我需要b(i,j)的数组结构,因为a(i,j)具有数百个列和行,并且因为我想在进一步操作期间将b(i,j)与a(i,j)相关联b(i,j)个元素的集合。即使有可能,切换到“长一个”也很笨拙。
写作时
b(i,j)
您正在将字符串b(i,j)=ichar('a(i,j)')
传递给函数a(i,j)
,该函数只需要一个ichar
。如果character
是字符矩阵,则必须将其条目之一的值传递给a
,如[]所示:
ichar