char* 转换为 godot::String
godot::String的构造函数
String();
String(const String &from);
String(const StringName &from);
String(const NodePath &from);
String(String &&other);
String(const char *from);
String(const wchar_t *from);
String(const char16_t *from);
String(const char32_t *from);
char* str1 = "hello";
String str2 = String((const char*)str1);
godot::String 转换为 char*
godot::String 貌似不能直接转换为 char*(?),这里借助了godot::CharString
godot::String 转为 godot::CharString
namespace godot {
class String {
...
CharString utf8() const;
CharString ascii() const;
Char16String utf16() const;
Char32String utf32() const;
CharWideString wide_string() const;
...
}
}
在godot::CharString/Char16String…类中有get_data()方法,返回各自对应的const char*
class CharString {
friend class String;
...
public:
...
const char *get_data() const;
...
};
class Char16String{const char16_t *get_data() const;}
class Char32String{const char32_t *get_data() const;}
class CharWString{const wchar_t *get_data() const;}
具体的转换过程
char* testChar = "world";
String aaa = String((const char*)testChar);
CharString charStr = aaa.utf8();
const char* bbb = charStr.get_data();
std::string 与 godot::String之间好像不能直接转换(?源码中没看见相关方法)需要先转为 char*。
char* 与 std::string之间的相互转换相信大家都会,不在赘述。