//빈 문자열 생성
string str;
string str1 = "apple";
string str2;
str2 = "banana";
string str3("peach");
string str4(str3);
char s[] = { 'm', 'a', 'n', 'g', 'o'};
string str5(s);
// 동적 할당
string* str6 = new string("grape");
char*나 char[]와 다르게 문자열 끝에 '\0'이 포함되지 않아 문자열의 길이를 동적으로 변경이 가능
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
cin >> str; // red apple 입력
cout << "cin 결과: " << str << endl; // 출력 값 -> cin 결과: red
return 0;
}
공백(space)이 입력될 때까지 값을 받음
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str); // green kiwi
cout << "getline() 결과: " << str << endl; // 출력 값 -> getline() 결과: green kiwi
getline(cin, str, 'i');
cout << "getline() 결과: " << str << endl; // 출력 값 -> getline() 결과: green k
return 0;
}
cin.getline()
<fstream> 헤더를 추가해서 사용 가능
getline(input, str, delim = "")
- input : 문자열을 읽어들일 스트림
- str : 입력된 문자열을 저장할 변수
- delim : 구분문자, 해당 문자 전까지 읽어옴
at(i)
i 위치 문자 반환, 범위 유효성 체크 O
str[i]
i 위치 문자 반환, 범위 유효성 체크 X
front()
문자열의 가장 앞의 문자 반환
back()
문자열의 가장 뒤의 문자 반환
length()
문자열 길이 반환
size()
문자열 길이 반환 (length()와 동일)
max_size()
최대한 메모리 할당할 경우 저장할 수 있는 문자열 길이 반환
capacity()
문자열의 메모리 크기 반환
resize(n)
크기를 n으로 변경 (삭제 or 빈 공간으로 채우는 식)
resize(n, 'a')
n이 원래 길이보다 길면 빈 공간을 'a'로 채움
shrink_to_fit()
capacity가 실제 사용하는 메모리보다 큰 경우 메모리를 줄여줌 (메모리 낭비 제거)
reserve(n)
사이즈 n만큼의 메모리를 미리 할당
empty()
빈 문자열인지 확인
append(str2)
문자열 뒤에 str2 문자열을 이어 붙여줌 (str + str2와 같은 결과)
append(str2, n, m)
문자열 뒤에 str의 n번째 문자부터 m개의 문자를 이어 붙여줌
insert(n, str2)
n번째 index 앞에 str2 문자열을 삽입함
replace(n, k, str2)
n번째 index부터 k개의 문자열을 str2로 대체함
clear()
저장된 문자열을 모두 지움
erase()
clear()와 같음
erase(n, m)
n번째 index부터 m개의 문자를 지움
erase(n, m) : iterator
n ~ m index 문자열을 지움
push_back(c)
문자열의 맨 뒤에 c를 붙여줌
pop_back()
문자열의 맨 뒤의 문자를 제거
assign(str2)
문자열에 str2 문자열을 할당함
substr()
문자열 전체 반환
substr(n)
문자열의 n번째 index부터 끝까지 부분 문자열 반환
substr(n, k)
문자열의 n번째 index부터 k개의 부분 문자열 반환
compare(str2)
str2와 같은지 비교,
- str < str2 인 경우 음수 반환
- str > str2 인 경우 양수 반환
copy(str2, k, n)
문자열의 n번째 index부터 k개의 문자열을 복사
find("abcd")
"abcd"가 문자열에 포함되어 있는지 확인
찾으면 해당 부분 첫 index 반환
find("abcd", n)
n번째 index부터 "abcd" 찾음
없으면 string::npos 반환 (npos = no position)
find_first_of("/")
"/"가 처음 나타나는 index 반환
find_last_of("/")
"/"가 마지막으로 나타나는 index 반환
c_str()
string을 c스타일의 문자열로 변경
begin()
string의 시작 iterator 반환
end()
string의 끝 iterator 반환
swap(str, str2)
str과 str2를 바꿔줌
str = str2 + str3
str2와 str3를 붙여서 str에 복사함
str += str2
str 뒤에 str2를 붙여줌
str = str2
str에 str2 복사 (Deep copy)
str == str2
같은지 비교
str > str2, str < str2
str이 str2보다 사전순으로 앞인지 뒤인지 확인
<cctype> 헤더
- isdigit(c)
c가 숫자인지 확인,, 숫자이면 0이 아닌 숫자 반환
- isalpha(c)
알파벳 확인, 대문자는 1, 소문자는 2 반환, 알파벳이 아니면 0 반환
- isupper(num)
매개변수로 들어온 문자, 숫자가 대문자인지 확인하는 함수
대문자가 아닌 경우 0, 맞을 경우 0이 아닌 숫자 반환
- islower(num)
isupper와 반대
- toupper(c)
c를 대문자로 변환
- tolower(c)
c를 소문자로 변환
- stoi(), stof(), stol(), stod()
문자열을 숫자로 변환 (순서대로 int, float, long, double)