主题:请教如何判断字符型数组中无值
lee1985
[专家分:0] 发布于 2010-11-18 17:20:00
以一个1维长度6的字符数组为例
character(len=6)::a(100)
需要判断当中某些位置无值应该如何判断
if用0和用空格都不对,应该如何判断或者该怎么做?
谢谢
回复列表 (共26个回复)
21 楼
asymptotic [专家分:16630] 发布于 2010-11-19 23:35:00
我们知道 C 中的 字符串用 Null Char 结束,但 Fortran 不是。
我个人觉得楼主应该是解决初始化的问题,若是逐个比较字符串
c(i : i) = c_null_char,这样出来的字符串 在 Fortran 中有什么意义呢?
我们完全可以把 Fortran 中的字符串每个字符都初始化为 C 中的 Null char,
因为 Null Char 在这两种语言中代表的含义不同。这样,这个字符串不是“有值”了吗?
欢迎讨论。
22 楼
lee1985 [专家分:0] 发布于 2010-11-21 20:19:00
谢谢,fortran66不带这个函数的话,请问可以在哪里可以下载到
23 楼
dongyuanxun [专家分:7180] 发布于 2010-11-21 20:53:00
[quote]
谢谢,fortran66不带这个函数的话,请问可以在哪里可以下载到[/quote]
下不到
iso_c_binding属于fortran2003标准的内置module(无显现的.mod),必须使用支持fortran2003的编译器,gfortran4.4.x和ivf11.x以上应该都没问题
24 楼
yeg001 [专家分:14390] 发布于 2010-11-21 22:18:00
"fortran66", 见上帝了~
25 楼
dongyuanxun [专家分:7180] 发布于 2010-11-21 22:45:00
[quote]"fortran66", 见上帝了~[/quote]
估计他说的是cvf6.6
不是fortran66标准
26 楼
aia741 [专家分:20] 发布于 2010-11-22 12:40:00
不知道我理解对不对
character(len=6)::a(100),s
要判断a(i)中第j位是不是空,可以
先赋值s=a(i)
再判断if(s(j:j)='')
我来回复