문자열 문제에서 자주 사용하는 string 클래스를 정리해보자
#include < string >
using namespace std;
-> c++에서 사용되는 입출력 연산자
char name[100];
cin>>name;
cout<<"내 이름은 "<<name<<"입니다\n";
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main(){
char name[100];
cin >> name;
printf("%c\n", name[0]);
printf("%s\n", name);
string str1;
cin >> str1;
cout << str1 << "\n"; // 입력받은 문자열 출력
printf("개행 확인\n");
printf("%c\n", str1[0]); // string 역시 인덱스로 문자 접근 가능
// printf("%s\n", str1); -> string 클래스는 cout으로 출력해야 한다
return 0;
}
결과
string str1;
cin >> str1;
cout << "str1 : " << str1 << "\n";
결과
string str2;
getline(cin, str2);
cout << "str2 : " << str2 << "\n";
결과
string str1, str2, str3;
str1 = "hi";
str2 = "hi";
str3 = str1 + str2;
cout << str3 << "\n";
string[index] -> 유효한 범위인제 체크x -> at보다는 접근이 빠름
string.at(index)
string.front() - 문자열에서 가장 앞의 문자 반환
string.back()- 문자열에서 가장 뒤의 문자 반환
string.clear() - 저장된 문자열을 모두 지운다
string.erase() - clear와 같은 역할
string.erase(n,m) - index n번째 문자를 포함해서 m개를 지운다
string.erase(string.begin() + n) - 인덱스n 문자 제거
string.erase(string.begin() + n, string.begin() + m)
-> 인덱스 n 부터 인덱스 m-1 까지의 문자들 제거
string.append(string) - 인자의 문자열을 뒤에 붙여준다(+와 같음)
string.find("abc") - 문자열 abc가 포함되어 있는지 확인 후 포함되어 있다면 해당 부분의 첫 번째 index를 반환 / 없다면 -1를 반환!
string.substr(n,m) - 인덱스 n 부터 m개의 문자를 부분문자열로 반환
참고 링크
https://rebro.kr/53