2017-01-09 7 views
3

だから、私は文字列を初期化する際の '...'と '...'の違いは何ですか?

CHARACTER(LEN=4)::string 
string = "jklm" 

CHARACTER(LEN=4)::string 
string = 'jklm' 

の両方をFortranで文字列を初期化することができます違いは何ですか?

+1

マイナーな(おそらく些細な)点として、ここに_初期化_はありません。ただ_assignment_です。重要な概念は、文字リテラル定数を区切ることです。 – francescalus

+0

@francescalusご清聴ありがとうございます。しかし、私は翻訳しようとしたにもかかわらず、あなたの2番目の文を得ていません。あなたはそれを言うことを意味します...私はフォーマット文字列( "jklm")の既存の定数にのみ文字列を割り当てますか? –

+0

'' jklm''は、(文字)_定数constant_と呼ばれるものです。それは、これらの4つの文字で構成された値を持っていて、常に持っているものです。そのような定数は、初期化、代入、または他の多くの方法で使用でき、引用/アポストロフィの解釈はそれを変更しません。したがって、コンパイラに "ここに続くものは文字列を形成する"というデリミタ( '' 'や' '')は、初期化に固有ではなく "constant"というだけではありません。 [うまくいけば、それは物事をあまり明確にしていない...] – francescalus

答えて

3

fortanのドキュメントを一見すると、ほとんど同じです。文字列内の一重引用符を使用する場合は、二重引用符を使用して囲みます。また

// correct 
"John's Stuff" 

// wrong 
'John's Stuff' 

// correct 
'She said "Hey!"' 
// wrong 
"She said "Hey!"" 

http://www.fortran90.org/src/rosetta.html#strings-and-formatting

編集:ところで、同じことがほとんどのプログラミング言語のために行きます。

+2

また、 ''John''s Stuff''と' 'John" "Stuff" 'を修正する、すなわち二重引用符またはアポストロフィ。 –

+0

@HighPerformanceMarkエスケープ文字私は悪夢を与えるために使用される:) – Brian

2

機能的には同じです。 ""少し見やすく見えますが、違いはありません。

関連する問題