[프로그래머스] 코딩테스트 연습|코딩 기초 트레이닝|대문자로 바꾸기 - 대문자로 바꾸기 (C++) | string 클래스

Minju Kim·2023년 9월 27일
0
post-thumbnail
post-custom-banner
#include <string>
#include <vector>

using namespace std;

string solution(string myString) {
    string answer = "";
    for(int i = 0; i < myString.size(); i++){
        answer += toupper(myString[i]);
    }
    return answer;
}

C++을 배워가며..구글링 하며, 책도 참고하고 있는데 여기 벨로그에 기록하며 공부하려고 한다~.<

String 클래스 입력과 출력

-> cin, cout로 입출력이 가능
-> getline 함수 사용 가능

문자열 생성

string str; 

공백 이전까지 문자열 입력 받기

cin >> str; 

개행 이전까지. 한 줄 통째로 입력받기(공백 포함)

getline(cin, str);

'a'문자 이전까지 문자열 입력받기

getline(cin, str, 'a'); 

문자열 출력

cout << str;

string 클래스

#include <string> 헤더 파일 추가해줘야 함

  • 빈 문자열 str 생성 : string str;
  • "안녕하세요" 로 선언된 str 생성 : string str = "안녕하세요"; or `string str("안녕하세요");
  • str1 문자열 -> str2에 복사해서 새로운 문자열생성 : string str2(str1);
  • char 배열 -> 문자열로 : string str(char_배열이름);
  • new이용 -> 동적 할당 : string *str = new string("안녕하세요");

string 클래스에는 연산자 사용 가능하다

  • 문자열 비교 (<, >, ==)
    -> 사전 순서를 비교
  • 문자열 연결 (+)

원소 접근 함수

  1. str.at(index)
    index위치의 문자 반환, 유효 범위인지 체크함
  2. str[index]
    index위치의 문자 반환, 유효 범위 체크 안함 => at보다 빠름
  3. str.front()
    문자열의 가장 앞 문자 반환
  4. str.back()
    문자열의 가장 뒤 문자 반환

string의 크기

  1. str.length() = str.size()
    문자열 길이 반환
  2. str.capacity()
    문자열이 사용중인 메모리 크기 반환
  3. str.resize(n)
    string을 n의 크기로 만드는 것.
    기존 문자열 길이보다
    n이 작으면 -> 남은 부분 삭제
    n이 크다면 -> 빈 공간으로 채움
  4. str.resize(n, 'a')
    n이 기존 문자열 길이보다 크다면, 빈 공간을 'a'로 채움
  5. str.shrink_to_fit()
    string의 capacity가 실제 사용하는 메모리보다 큰 경우 -> 낭비되는 메모리 줄임(메모리를 줄여줌)
  6. str.reserve(n)
    size=n 만큼의 메모리 미리 할당
  7. str.empty()
    str이 빈 문자열인지 확인

string에 삽입/추가/삭제

  1. str.append(str2)
    str 뒤에 str2 문자열 이어 붙이기. (+와 같음)
  2. str.append(str2, n, m)
    str 뒤에 str2의 n인덱스부터 m개의 문자를 이어 붙임
  3. str.append(n, 'a')
    str 뒤에 n개의 'a' 이어 붙여줌
  4. str.insert(n, str2)
    n번째 index 앞에 str2문자열 삽입
  5. str.replace(n, k, str2)
    n번째 index부터 k개의 문자 -> str2로 대체
  6. str.clear() = str.erase()
    저장된 문자열 모두 지움
  7. str.erase(n, m)
    n번째 index부터 m개의 문자 지움
  8. str.erase(n, m) -> (n, m이 iterator)
    n~m의 index의 문자열 지움
  9. str.push_back(c)
    str 맨 뒤 -> c문자 붙임
  10. str.pop_back()
    str 맨 뒤 문자 제거
  11. str.assign(str2)
    str에 str2 문자열 할당

기타 string 멤버 함수

  1. str.find("ab")
    "ab"가 str에 포함되어 있나? -> 찾으면 해당 부분의 첫번째 index 리턴
  2. str.find("ab", n)
    n번째 index부터 "ab"를 찾음
  3. str.substr()
    str 전체 반환
  4. str.substr(n)
    str의 n번째 index부터 끝까지 문자를 부분 문자열로 반환
  5. str.substr(n, k)
    str의 n번째 index부터 k개의 문자 부분 문자열로 반환
  6. str.compare(str2)
    str이랑 str2가 같은가?
    사전적으로 str<str2 : 음수
    str>str2 : 양수 를 리턴
  7. swap(str1, str2)
    str1이랑 str2 바꿈. reference(참조) 교환
  8. isdigit(c)
    c문자가 숫자인가 - 불리언 리턴
  9. isalpha(c)
    c문자가 영어인가 - 불리언 리턴
  10. toupper(c) , tolower(c)
    c문자를 대문자/소문자로 변환
profile
이화여자대학교 컴퓨터공학과 22 / 백엔드 개발자(가 되고싶음) / Spring Boot, Flutter, Python, Java, Data structure, etc
post-custom-banner

0개의 댓글