[이득우의 언리얼] 3. FString의 구조와 활용

2026. 1. 20. 14:23·기타/[강의] 이득우의 언리얼 프로그래밍 Part1

FString의 동작 원리

FString은 TCHAR의 래퍼 클래스이다
TCHAR CharArray[] = TEXT("Hello World");
UE_LOG(LogTemp, Warning, TEXT("%s"), CharArray);
	
FString StringArray = CharArray;
UE_LOG(LogTemp, Warning, TEXT("%s"), *StringArray);

TEXT( );는 TCHAR[ ]을 반환한다. FString은 TCHAR을 담는 동적배열 TArray의 형태로 동작한다.

 


 

다양한 함수

(1) 복사

TCHAR CharArrayWithSize[100];
FCString::Strcpy(CharArrayWithSize, StringArray.Len(), *StringArray);

 


 

(2) 탐색

if (StringArray.Contains(TEXT("World"), ESearchCase::IgnoreCase))
{
	int32 Index = StringArray.Find(TEXT("World"), ESearchCase::IgnoreCase);
	FString EndString = StringArray.Mid(Index);
	UE_LOG(LogTemp, Warning, TEXT("%s"), *EndString);
}

대소문자 구분을 하지 않고, StringArray가 "World"를 포함하는지 확인한다. 이후 "World" 문자열이 나타난 Index를 기준으로 끝까지의 문자열을 로그로 출력한다.

 


 

(3) 분리

FString Left, Right;
if (StringArray.Split(TEXT(" "), &Left, &Right))
{
	UE_LOG(LogTemp, Warning, TEXT("%s %s"), *Left, *Right);
}

 

공백을 기준으로 왼쪽, 오른쪽 문자열을 분리한다.

 


 

(4) int, float -> string

int32 IntValue = 32;
float FloatValue = 3.141592;
	
FString FloatIntString = FString::Printf(TEXT("Int %d Float %f"), IntValue, FloatValue);
FString FloatString = FString::SanitizeFloat(FloatValue);
FString IntString = FString::FromInt(IntValue);

 


 

(5) string -> int, float

int32 IntValueFromString = FCString::Atoi(*IntString);
float FloatValueFromString = FCString::Atof(*FloatString);

 


FName

한 번 선언되면 바꿀 수 없고, 문자열이 들어오면 해시 값을 추출해 키를 생성해 FName에 보관한다. FName 값에 저장된 값을 사용해 전역 Pool에서 원하는 자료를 검색해 반환한다. 문자를 표현하는 용도가 아닌 에셋 키를 지정하는 용도로 사용한다.

// 대소문자 구분 안 함
FName key1(TEXT("PELVIS"));
FName key2(TEXT("pelvis"));
UE_LOG(LogTemp, Log, TEXT("%s"), key1 == key2 ? TEXT("같음") : TEXT("다름"));

// 탐색으로 인한 오버헤드 방지
for(int i = 0; i < 1000; ++i)
{
	FName SearchInNamePool = FName(TEXT("pelvis"));
	const static FName StaticOnlyOnce(TEXT("pelvis));
}

 

'기타 > [강의] 이득우의 언리얼 프로그래밍 Part1' 카테고리의 다른 글

[이득우의 언리얼] 8. 언리얼의 C++ 설계 - 컴포지션  (0) 2026.02.06
[이득우의 언리얼] 7. 언리얼 C++ 설계 - 인터페이스  (0) 2026.02.04
[이득우의 언리얼] 6.언리얼 오브젝트 리플렉션 시스템 2  (0) 2026.02.04
[이득우의 언리얼] 5. 언리얼 오브젝트 리플렉션 시스템 1  (0) 2026.02.03
[이득우의 언리얼] 4. 언리얼 오브젝트 시스템  (0) 2026.01.21
'기타/[강의] 이득우의 언리얼 프로그래밍 Part1' 카테고리의 다른 글
  • [이득우의 언리얼] 7. 언리얼 C++ 설계 - 인터페이스
  • [이득우의 언리얼] 6.언리얼 오브젝트 리플렉션 시스템 2
  • [이득우의 언리얼] 5. 언리얼 오브젝트 리플렉션 시스템 1
  • [이득우의 언리얼] 4. 언리얼 오브젝트 시스템
Meoyoung's Development Logs
Meoyoung's Development Logs
내가 보려고 만든 블로그
  • Meoyoung's Development Logs
    이게뭐영
    Meoyoung's Development Logs
  • 전체
    오늘
    어제
    • 분류 전체보기 (229)
      • 게임잼 (3)
      • 언리얼 엔진 (53)
        • 꿀 Tip ! (7)
        • 트러블슈팅 (24)
        • 최적화 (0)
        • 캐릭터 (2)
        • VR (1)
        • Lighting (2)
        • 멀티스레드 (2)
        • 문자열 (0)
      • C++ (31)
        • 문법 정리 (8)
        • [서적] Fundamental C++ 프로그래밍 .. (5)
        • [서적] 이것이 C++이다 (11)
        • [서적] Effective C++ (7)
      • C# (1)
        • [서적] 이것이 C#이다 (1)
      • 코딩테스트 (26)
        • 프로그래머스 (6)
        • 알고리듬 (13)
        • 자료구조 (7)
      • 컴퓨터 과학 (27)
        • 운영체제 (11)
        • 데이터베이스 (0)
        • 디자인패턴 (0)
        • 자료구조 (5)
        • 네트워크 (0)
        • 컴퓨터구조 (11)
      • 면접준비 (0)
        • C++ (0)
        • 운영체제 (0)
        • 자료구조 (0)
      • 프로젝트 (25)
        • [팀프로젝트] The Fourth Descenda.. (5)
        • [개인프로젝트] FPS 구현 맛보기 (5)
        • GetOutOf (15)
      • 기타 (54)
        • [강의] 이득우의 언리얼 프로그래밍 Part1 (10)
        • [강의] 이득우의 언리얼 프로그래밍 Part3 (12)
        • [강의] 소울라이크 개발 A-Z (4)
        • [강의] Udemy-2D (5)
        • [서적] 인생 언리얼5 (4)
        • 스파르타코딩클럽 (15)
        • 객체지향프로그래밍 (2)
        • 컴퓨터회로 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    참가후기
    셸정렬
    삽입정렬
    버블정렬
    쉘정렬
    선택정렬
    게임개발
    알고리즘
    자료구조
    게임잼
    경북게임잼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Meoyoung's Development Logs
[이득우의 언리얼] 3. FString의 구조와 활용
상단으로

티스토리툴바