string타입 문자열 전체를 대문자로 바꾸는 방법


한 번에 스트링 전체를 대문자로 바꾸는 방법이 있을까요? 제가 구글에서 찾은 건 char형인데 저는 string형에서 써야 합니다

  • 2016년 01월 24일에 작성됨

조회수 295


1 답변


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

1. std::transform을 쓰는 방법

#include <algorithm>
#include <string>

std::string str = "Hello World";
std::transform(str.begin(), str.end(),str.begin(), ::toupper);

헤더에 있으며, 범위에 있는 모든 원소에 대해 function을 수행한 결과를 다른 범위에 저장합니다.

원형은

template< class InputIt, class OutputIt, class UnaryOperation >
OutputIt transform( InputIt first1, InputIt last1, OutputIt d_first,
                    UnaryOperation unary_op );

//또는

template< class InputIt1, class InputIt2, class OutputIt, class BinaryOperation >
OutputIt transform( InputIt1 first1, InputIt1 last1, InputIt2 first2, 
                    OutputIt d_first, BinaryOperation binary_op );

입니다.

파라미터는

  • first1, last1 : transform 할 첫 번째 원소
  • first2 : transform 할 2번째 범위의 첫 번째 원소
  • d_first : transform 결과를 저장할 범위의 첫 번째 위치
  • unary_op : 객체를 바꾸는 unary 함수
  • bianry_op : 객체를 바꾸는 binary함수

입니다

2. Boost를 쓰는 방법

#include <boost/algorithm/string.hpp>
#include <string>

std::string str = "Hello World";
boost::to_upper(str);
std::string newstr = boost::to_upper_copy<std::string>("Hello World");
  • 2016년 01월 24일에 작성됨

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

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