TIL 쓰기전 항상 명심 할 것
작성 타이밍: 공부가 다 끝나고 쓰려고 하면 지쳐서 안쓴다. 모르는게 있을 때 즉시 적기
작성 강도: 메모가 절대로 '공부'나 '또 하나의 짐'처럼 무거워지면 안됨.
[질문]
- 내가 몰랐던 것 (문제): FString 자료형 변수인데 어떻게 배열처럼 인덱스로 접근 할 수 있을까?
- 원인 (이유): FString은 문자들의 모음이기 때문에 배열처럼 인덱스로 접근할 수 있고, 문자열[i]는 i번째 문자 하나를 의미한다.
- 정답이 "123", 입력이 "132"라면
i 정답 입력 결과 0 1 1 스트라이크 1 2 3 볼 2 3 2 볼 - 코드 :
FString AHWGameModeBase::JudgeResult(const FString& InNumberString, const FString& InGuessNumberString)
{
int32 StrikeCount = 0;
for (int32 i = 0; i < 3; ++i)
{
if (InNumberString[i] == InGuessNumberString[i])
{
StrikeCount++;
}
}
return FString();
}
[개념] TSet <>
- 한 줄 요약: 중복을 허용 하지않는 주머니
- 언제 써?: 같은 값이 여러 번 들어오면 안 되는 상황에서 사용
- 코드:
FString Input = TEXT("112"); TSet<TCHAR> UniqueDigits; for (TCHAR C : Input) { UniqueDigits.Add(C); } if (UniqueDigits.Num() != Input.Len()) { UE_LOG(LogTemp, Warning, TEXT("중복된 문자가 있습니다.")); } else { UE_LOG(LogTemp, Log, TEXT("모든 문자가 서로 다릅니다.")); }
[개념] TCHAR 변수명
- 한 줄 요약: 문자 하나를 담는 자료형
- 언제 써?: FString 같은 문자열을 한 글자씩 순회하면서 검사하거나 처리할 때 사용
- 코드:
FString Input = TEXT("ABC"); for (TCHAR C : Input) { UE_LOG(LogTemp, Log, TEXT("현재 문자: %c"), C); }
[함수족보] FChar::IsDigit()
- 한 줄 요약: 전달받은 문자가 숫자 문자인지 확인하는 함수
- 언제 써?: 문자열 입력값을 검사할 때, 각 문자가 숫자인지 확인(사용자 입력은 보통 문자열로 들어오기 때문에, 입력값이숫자로만 구성되어 있는지 확인할 때 유용하다.)
- 코드:
FString Input = TEXT("12A"); for (TCHAR C : Input) { if (FChar::IsDigit(C) == false) { UE_LOG(LogTemp, Warning, TEXT("숫자가 아닌 문자가 포함되어 있습니다.")); break; } }
[함수 족보] do{...} while(false)
- 한 줄 요약: 중간에 조건이 틀리면 break로 빠져나가기 위한 구조
- 언제 써?: 많은 조건중 하나라도 실패하면 바로 밖으로 내보내고 싶을 때
- 코드:
do
{
...
} while (false);
[함수 족보] FString::Printf()
- 한 줄 요약: 값을 원하는 형식의 문자열로 만들어주는 함수
- 언제 써?: 숫자, 문자, 변수 값을 조합해서 하나의 FString 문자열로 만들고 싶을 때 사용
- 코드:
int32 StrikeCount = 1; int32 BallCount = 2; FString Result = FString::Printf(TEXT("%dS%dB"), StrikeCount, BallCount);
[함수 족보] Contains()
- 한 줄 요약: 문자열 안에 특정 문자열이 포함되어 있는지 확인하는 함수
- 언제 써?: 어떤 문자열 안에 내가 찾는 값이 들어있는지 검사할 때 사용
- 코드:
FString SecretNumber = TEXT("123"); FString GuessChar = TEXT("2"); if (SecretNumber.Contains(GuessChar)) { UE_LOG(LogTemp, Log, TEXT("정답 안에 해당 숫자가 있습니다.")); }
[함수 족보] FString::Len()
- 한 줄 요약: 문자열에 들어있는 글자 개수를 반환하는 함수
- 언제 써?: 문자열이 몇 글자인지 알아야 할 때 사용
- 코드:
FString InChatMessageString = TEXT("Player0:123");
int Index = InChatMessageString.Len() - 3;
FString GuessNumberString = InChatMessageString.RightChop(Index);
UE_LOG(LogTemp, Log, TEXT("GuessNumberString: %s"), *GuessNumberString);
[함수 족보] RightChop()
- 한 줄 요약: 문자열의 왼쪽에서 지정한 개수만큼 잘라내고, 남은 오른쪽 문자열을 반환하는 함수
- 언제 써?: 문자열 앞부분은 버리고, 뒤쪽에 있는 필요한 내용만 가져오고 싶을 때 사용("Player: 123"에서 "123"만 분리할 때)
- 코드: FString::Len()함수 코드참고
'TIL(Today I Learned)' 카테고리의 다른 글
| 2026/06/24 (0) | 2026.06.24 |
|---|---|
| 2026/06/19 (0) | 2026.06.19 |
| 2026/06/18 (0) | 2026.06.18 |
| 2026/06/15 (0) | 2026.06.15 |
| 2026/06/12 (0) | 2026.06.12 |