[C++ 문법 정리] 1. String

하스레·2023년 2월 23일
0

C++ 문법 정리

목록 보기
1/2

문자열 String

라이브러리

#include <string>

문자열 생성

string str;	//빈문자열
str = "abv;

string str = "abcdef";

string str("abcd");

string str2(str1);	//str1을 복사해서 str2 생성

string *str = new string("abc");	//new 이용한 동적할당

입출력

string str;

//입력
cin >> str; 	//공백 전까지 문자열 입력 받기

getline(cin, str);	//'\n'전까지 공백 포함된 한줄 입력 받기

getline(cin, str, ',');	//',' 전까지 문자열 입력 받기

//출력
cout << str;

연산자 활용

  • 문자열 비교: <, >, == 이용하여 사전 순서를 비교하거나 같은지 확인 가능
  • 문자열 연결: + 이용하여 두 문자열 연결
  • 문자열 대입: = 이용하여 대입
    ex. string str = str1 + str2;
           

string 클래스 멤버 함수

  • 문자열 내 특정 원소 접근
함수명제목2
str.at(index)index위치의 문자 봔한(유효 범위 체크 O)
str[index]index위치의 문자 봔한(유효 범위 체크 X->at 보다 접근 빠름)
str.front()문자열 가장 앞 문자 반환
str.back()문자열 가장 뒤 문자 반환
  • 문자열 크기
함수명제목2
str.empty()빈 문자열인지 확인
str.size()문자열 길이 반환
str.length()문자열 길이 반환
str.capacity()문자열이 사용중인 메모리 크기 반환
str.resize(n)문자열의 크기를 n으로 만듦 (삭제하거나 빈공간으로 채워서)
str.resize(n, 'a')문자열의 크기를 n으로 만듦 (빈공간을 'a'로 채움)
  • 문자열에 삽입/삭제/추가
함수명제목2
str1.append(str2)str1뒤에 str2 붙임
str1.append(str2, n, m)str1뒤에 str2의 n번째 인덱스부터 m개의 문자를 이어 붙임
str.append(n, 'a')str 뒤에 n개의 'a'를 이어 붙임
str.insert(n, str2)n번째 index 앞에 str2 문자열을 삽입
str.replace(n, k, str2)n번째 index부터 k개의 문자를 str2로 바꿈
str.clear()저장된 문자열을 모두 삭제
str.erase()저장된 문자열을 모두 삭제
str.erase(n, m)n번째 index부터 m개의 문자를 지움
str.erase(n, m) (iterator)n~m index의 문자열을 지움 (n과 m은 iterator)
str.push_back(c)str의 맨 뒤에 c 문자 push()
str.pop_back()str의 맨 뒤의 문자 pop()
str.assign(str2)str에 str2 문자열 할당 (변수 정의와 동일)
  • 기타 함수
    | 함수명 | 제목2 |
    | --- | :--- |
    | str.find("abc") | "abc"가 str에 포함되어있는지를 확인 후 찾으면 해당 부분의 첫번째 index를 반환 |
    | str.find("abcd", n) | n번째 index부터 "abcd"를 find |
    | str.substr() | str 전체를 반환 |
    | str.substr(n) | str의 n번째 index부터 끝까지의 문자를 부분문자열로 반환 |
    | str.substr(n, k) | str의 n번째 index부터 k개의 문자를 부분문자열로 반환 |
    | str1.compare(str2) | str1과 str2가 같은지를 비교. 같다면 0, str1<str2 인 경우 음수, str1>str2 인 경우 양수를 반환 |
    | swap(str1, str2) | str1과 str2를 바꿈 (reference 교환) |
    | isdigit(c) | c 문자가 숫자이면 true, 아니면 false를 반환 |
    | isalpha(c) | c 문자가 영어이면 true, 아니면 false를 반환 |
    | toupper(c) | c 문자를 대문자로 변환 |
    | tolower(c) | c 문자를 소문자로 변환 |

참고
https://rebro.kr/53

profile
Software Developer

0개의 댓글