主题:请教如何判断字符型数组中无值
lee1985
[专家分:0] 发布于 2010-11-18 17:20:00
以一个1维长度6的字符数组为例
character(len=6)::a(100)
需要判断当中某些位置无值应该如何判断
if用0和用空格都不对,应该如何判断或者该怎么做?
谢谢
回复列表 (共26个回复)
沙发
dongyuanxun [专家分:7180] 发布于 2010-11-18 18:02:00
用空格为什么不行
character(20) :: s1
integer :: i
s1="OK"
do i=1,20
if(s1(i:i) == " ") then
print *,i
endif
enddo
板凳
lee1985 [专家分:0] 发布于 2010-11-18 18:18:00
谢谢,但是我问的是数组
例如s1(10)=/a,b,c, ,e,f, ,h,i,j,k/
s1(4)和s1(7)无值,我应该怎么判断并输出
3 楼
dongyuanxun [专家分:7180] 发布于 2010-11-18 18:28:00
那不是一样么
s1(i) == " "
4 楼
lee1985 [专家分:0] 发布于 2010-11-18 19:01:00
空格数和字符长度有关么?还是都只需要1个空格
5 楼
dongyuanxun [专家分:7180] 发布于 2010-11-18 19:02:00
[quote]
空格数和字符长度有关么?还是都只需要1个空格[/quote]
都是一个空格
6 楼
lee1985 [专家分:0] 发布于 2010-11-19 19:20:00
character(4)::s(10,5)
integer::i,j
do i=1,10
s(i,1)="haha"
end do
do i=2,9
s(i,2)="haha"
end do
do i=3,8
s(i,3)="haha"
end dodo i=4,7
s(i,4)="haha"
end do !赋值到数组s
do i=1,10
do j=1,5
if(s(i,j)==" ")then
write(*,*)j
end if
end do
end do
运行没有输出啊
7 楼
dongyuanxun [专家分:7180] 发布于 2010-11-19 19:40:00
s没初始化 你怎么知道里面就是空的呢
先s=" "
8 楼
lee1985 [专家分:0] 发布于 2010-11-19 19:43:00
我咨询的就是判断无值,而不是判断空格啊
我现在就是想判断一个已有数组每一行到底有几列,不能去给它初始化啊
9 楼
dongyuanxun [专家分:7180] 发布于 2010-11-19 19:49:00
[quote]
我咨询的就是判断无值,而不是判断空格啊
我现在就是想判断一个已有数组每一行到底有几列,不能去给它初始化啊[/quote]
你说的为空 没有意义
你说一个整型变量为空 是什么意义
一个字符变量为空 也没意义
在没初始化之前 值是随机的
又如"ss ssss"第三个字符你认为是什么,为空么?
某个变量没初始化,你说是什么?谁都不知道
10 楼
asymptotic [专家分:16630] 发布于 2010-11-19 19:51:00
As far as I know, Null Value .ne. Blank.
我来回复