gpt4 book ai didi

Fortran:整数到字符串示例

转载 作者:行者123 更新时间:2023-12-02 14:11:31 27 4
gpt4 key购买 nike

我正在尝试编写一个简单的 Fortran 代码,以供练习。它应该乘以一定范围内的数字。每次,结果产品都会转换为字符串,因为我想看看它是否由相同的数字组成。

我测试了将整数转换为字符串并输入字符串组成部分的方式,一切正常。然后,我需要比较字符串的组成部分,为此我使用 string(number:number)。但我无法获得正确执行此操作的代码。

这是代码和输出:

program test
implicit none
character(10) myString
character(1) a,b,c,d,e,f
integer::i,j,k
do i=900,901,1
j=900
k=i*j
write(*,*)'k =', k
write(myString,'(i10)') k
write(*,*)'myString = ', myString
a=myString(1:1)
b=myString(2:2)
c=myString(3:3)
d=myString(4:4)
e=myString(5:5)
f=myString(6:6)
print*,a,b,c,d,e,f
if (d==f) then
print*,'hobla'
else
print*,'fobla'
end if
end do

stop
end program test

所以我定义了字符:a、b、c、d、e、f来包含字符串的组成部分。并使用 myString(i:i) 来定位每个组件并将其存储在字符 a、b、c、d、e、f 之一中。但似乎只有前两个工作正常,其余的没有被存储!

输出:

 k =      810000
myString = 810000
81
fobla
k = 810900
myString = 810900
81
fobla

通知 81。第一次应该给出 810000,并打印“hobla”。第二次输入 810900 并打印“fobla”。但这并没有发生!

有人可以告诉我如何让 myString 接受零作为字符吗?

最佳答案

本声明

write(myString,'(i10)') k

将 k 的值写入 10 个字符的字段。由于 k 只有 6 位有效数字,因此 myString 中的前 4 个字符用空格填充。然后将 myString 的前 6 个字符(即 4 个空格以及数字 8 和 1)分配给变量 a,b,c,d,e,f 并打印出来——4 个空格和 2 个数字。

尝试打印 myString7..10 位置中的其他字符,您应该会看到“丢失”的数字。

关于Fortran:整数到字符串示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13316378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com