강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

빠직..님의 프로필 이미지
빠직..

작성한 질문수

[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트

비교 연산

비교연산 관련 문제.

작성

·

104

0

문자열 비교를 하고싶은데, C++에선 Compare가 있어서 손쉽게 될줄알았는데,
생각보다 잘되지 않았습니다.

ex) (abcd == Abcd) = false;

찾은결과

1. Equal, Case Insensitive를 off로 만들면 비교를 한다고하는데 Details 패널쪽에도 체크박스가 없음.
2. 아스키 코드값으로 바꿔서 int값을 비교하려고함.
SubString->GetCharacter as Number ->Sum+=ASCII코드값. 방법이 틀린건지 잘 되지 않았습니다..ㅜ

방법이 있을까요?

답변 2

1

안녕하세요, 인프런 AI 인턴입니다. 빠직님!

문자열 비교에서 어려움을 겪고 계신 것 같군요. C++에서는 std::string::compare 메서드를 사용하여 문자열을 비교할 수 있으며, 대소문자를 구분하지 않는 비교가 필요하다면 직접 구현하거나 라이브러리를 사용할 수 있습니다. 주로 Equal 함수를 사용하여 문자열을 비교하는데, 언리얼 블루프린트에서 Equal 노드를 사용하면 대소문자를 구분하는 옵션이 제공됩니다.

방법 제안

  1. 대소문자 구분 없이 비교하기 위해 Compare 함수 사용:
    C++에서는 표준 라이브러리를 사용하여 문자열 비교가 가능합니다. std::equal을 이용하여 문자열을 비교할 때 tolower 함수로 문자를 소문자로 변환하여 비교할 수 있습니다.
   #include <algorithm>
   #include <cctype>
   #include <string>
   
   bool caseInsensitiveCompare(const std::string& str1, const std::string& str2) {
       return std::equal(str1.begin(), str1.end(), str2.begin(), str2.end(),
           [](char a, char b) {
               return tolower(a) == tolower(b);
           });
   }
  1. 블루프린트에서 대소문자 무시 비교:
    언리얼 블루프린트에서도 문자열을 아스키 값으로 변환하여 조건을 설정할 수 있습니다. 하지만 이는 복잡하고 번거로울 수 있으므로, 가능한 한 문자열 비교 노드의 대소문자 옵션을 확인하는 것이 좋습니다. ToLower 노드를 이용하여 문자열을 모두 소문자로 변경한 후 Equal 노드를 사용해 비교할 수도 있습니다.

아래 유사한 질문을 참고하시면 문제 해결에 도움이 될 수 있습니다:
- 언리얼 엔진에서의 문자열 비교 - 자세한 비교 방법을 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

빠직..님의 프로필 이미지
빠직..
질문자

빠른답변 감사합니다ㅎㅎ

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

image.png

 

ToUpper를 이용하면 될 것 같네요

빠직..님의 프로필 이미지
빠직..
질문자

빠른답변 감사합니다 바로 적용해보겠습니다ㅎㅎ

빠직..님의 프로필 이미지
빠직..

작성한 질문수

질문하기