std::string이 특정 문자로 끝나는지 아닌지 판단하는 함수


python에서는 string.endwith로 검사할 수 있었는데

C++에도 std::string이 특정 문자로 끝나는지 아닌지 판단하는 함수가 있나요?

  • 2016년 02월 23일에 작성됨

조회수 171


1 답변


좋아요
0
싫어요
채택취소하기

C++은 문자열 자체를 비교하는 기능은 있지만 "특정 문자열로 끝나는지" 알려주는 함수는 없습니다. 그래서 직접 구현하셔야 합니다.

#include <iostream>

/*fillString이 ending으로 끝나는지 확인해주는 함수*/
bool hasEnding (std::string const &fullString, std::string const &ending) {
    if (fullString.length() >= ending.length()) {
        return (0 == fullString.compare (fullString.length() - ending.length(), ending.length(), ending)); //fullString의 길이에서 ending의 길이만큼 뺀 위치부터 같은지 검사
    } else { //fullString의 길이보다 ending의 길이가 긴 경우 -> 항상 거짓
        return false;
    }
}

int main () {
    std::string test1 = "binary";
    std::string test2 = "unary";
    std::string test3 = "tertiary";
    std::string test4 = "ry";
    std::string ending = "nary";

    std::cout << hasEnding (test1, ending) << std::endl;
    std::cout << hasEnding (test2, ending) << std::endl;
    std::cout << hasEnding (test3, ending) << std::endl;
    std::cout << hasEnding (test4, ending) << std::endl;

    return 0;
}
  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close