文字列操作したい(G4String

1G4String material_name = "G4_AIR";

G4StringはGeant4内部で使用される文字列クラスです。 std::stringクラスを継承しています。 std::stringstd::string_view型の引数の値として使えます。

また、追加機能としてG4StrUtilという名前空間も定義されています。

C文字列に変換したい(c_str

1G4String material_name = "G4_AIR";
2printf("Material Name: %s", material_name.c_str())
3// Material Name: G4_AIR

G4Stringクラスは、内部で暗黙の型変換をしてくれるそうですが、 %s指定子でフォーマット指定した場合は、 C文字列への変換を明示する必要があります。

注釈

G4Stringのクラスリファレンスを確認すると、 deprecated指定されたメンバー関数が多いです。 ヘッダーファイルのコメントにも 「std::stringと同じインタフェースを提供する」 というような方針が書いてあります。 ゆくゆくはstd::stringに置き換わるのかも?

リファレンス