虚幻4学习---UE4中的字符串转换

来源:互联网 发布:mysql 小于当前时间 编辑:程序博客网 时间:2024/05/16 06:42


虚幻4学习---UE4中的字符串转换(文章来自于UE4官方文档)


String Conversions: 

FString to FName

FString to Int32

Float to FString

FArrayReaderPtr to FString (新增)

TArray<uint8> to FString(新增)

FString to char *(新增) TCHAR_TO_ANSI()

FString to TCHAR *(新增)


Overview

  1. FString to FName
  2. std::string to FString
  3. FString and FCString Overview
  4. FString to Integer
  5. FString to Float
  6. Float/Integer to FString
  7. UE4 C++ Source Header References

All the header files I refer to in this tutorial are found in

your UE4 install directory  / Engine / Source

you will probably want to do a search for them from this point :)

Converting FString to FNames

Say we have

FString TheString = "UE4_C++_IS_Awesome";

To convert this to an FName you do:

FName ConvertedFString = FName(*TheString);

std::string to FString

#include <string> //.... some function{  std::string TestString = "Happy";   FString HappyString(TestString.c_str());}

FString to std::string

#include <string> //....FString UE4Str = "Flowers";std::string MyStdString(TCHAR_TO_UTF8(*UE4Str));

FCString Overview

Converting FString to Numbers

The * operator on FStrings returns their TCHAR* data which is what FCString functions use.

If you cant find the function you want in FStrings (UnrealString.h) then you should check out the FCString functions (CString.h)

I show how to convert from FString to FCString below:

Say we have

FString TheString = "123.021";

FString to Integer

int32 MyShinyNewInt = FCString::Atoi(*TheString);

FString to Float

float MyShinyNewFloat = FCString::Atof(*TheString);


Note that Atoi and Atof are static functions, so you use the syntax FCString::TheFunction to call it :)


Float/Integer to FString

FString NewString = FString::FromInt(YourInt); FString VeryCleanString = FString::SanitizeFloat(YourFloat);

Static functions in the UnrealString.h :)

UE4 Source Header References

CString.hUnrealString.hNameTypes.h

See CString.h for more details and other functions like

atoi64 (string to int64)Atod(string to double precision float)


For a great deal of helpful functions you will also want to look at

UnrealString.h for direct manipulation of FStrings!


For more info on FNames check out
 NameTypes.h

Enjoy!

------------------------------------------------------------------------------

FArrayReaderPtr to FString

uint8 data[512];FMemory::Memzero(data, 512);FMemory::Memcpy(data, ArrayReaderPtr->GetData(), ArrayReaderPtr->Num());FString str = ((const char*)data);

Array<uint8> to FString

TArray<uint8> content;...const std::string cstr(reinterpret_cast<const char*>(content.GetData()), content.Num());FString frameAsFString = cstr.c_str();UE_LOG(VRSLog, Warning, TEXT("%s"), *frameAsFString);


FString to char *  TCHAR_TO_ANSI()

int BP_GetColumnIndex(int resultSet, FString columnName){    return GetColumnIndex(resultSet, TCHAR_TO_ANSI(*columnName));}  int GetColumnIndex(int iResult, const char* columnName){}



FString to TCHAR *

int BP_GetColumnIndex(int resultSet, FString columnName){    return GetColumnIndex(resultSet, *columnName);}  int GetColumnIndex(int iResult, const TCHAR* columnName){}













0 0
原创粉丝点击