如何在Fortran中打印带引号的字符串以查看首尾空格?
Fortran打印带包裹引号的字符串实现方法
有两种常用的实现方案,都可以准确保留字符串的前后空格并以引号包裹输出:
方法1:直接在输出格式中嵌入转义引号
Fortran的格式串规则中,连续两个单引号会被转义为一个输出的单引号,连续两个双引号会被转义为一个输出的双引号,你可以直接把引号写在输出格式里:
- 输出带单引号包裹的内容:
! 写法1:用双引号包裹格式串 write(*,"('''',A,'''')") changed_string1(1:3) ! 写法2:用单引号包裹格式串(更常用) write(*,'('''',A,'''')') changed_string1(1:3)
- 输出带双引号包裹的内容:
write(*,'("""",A,"""")') changed_string1(1:3)
方法2:先拼接带引号的临时字符串再输出
如果你需要复用带引号的字符串,可以先完成拼接再输出:
character*30 changed_string1, quoted_str changed_string1="hello" ! 拼接单引号到字符串前后,不需要裁剪空格就去掉trim/adjustl quoted_str = "'"//changed_string1//"'" ! 输出完整带引号的内容 write(*,"(A)") quoted_str
完整运行示例
修改后的完整代码如下:
character*30 changed_string1 changed_string1="hello" ! 输出前3位,带单引号 write(*,'('''',A,'''')') changed_string1(1:3) ! 输出完整30位字符串,带单引号,可直接看到尾部空格 write(*,'('''',A,'''')') changed_string1 end
运行输出结果:
'hel' 'hello '
内容的提问来源于stack exchange,提问作者wander95
相关产品推荐
相关产品推荐

