문자열.length()
문자열.size()
[문법]
1. 문자열.append(추가할문자열);
//추가할 문자열을 맨 끝에 추가함
2. 문자열.append(추가할문자열, 시작위치, 개수);
//추가할 문자열의 시작 위치부터 개수만큼만 맨 끝에 추가함
3. 문자열.append(개수, 추가할문자);
//추가할 문자를 개수만큼 맨 끝에 추가함
[예제]
string str1, str2, str3;
str1.append("C++ Programming");
str2.append("C++ Programming", 4, 7);
str3.append(4, 'X');
cout << str1 << endl;
cout << str2 << endl;
cout << str3;
[결과]
C++ Programming
Program
XXXX
💡 정적 상수인 string::npos는 string 클래스에 static const size_type= -1 로 명시되어 있다.
[문법]
1. 문자열.find(찾을문자열);
//인덱스 0부터 찾을 문자열을 찾아, 그 시작 위치를 반환
2. 문자열.find(찾을문자);
//인덱스 0부터 찾을 문자를 찾아, 그 시작 위치를 반환
3. 문자열.find(찾을문자열, 시작위치);
//시작 위치부터 찾을 문자열을 찾아, 그 시작 위치를 반환
[예제]
string str = "C++ Programming";
cout << str.find("Pro") << endl;
cout << str.find('r') << endl;
if (str.find("Pro", 5) != string::npos)
{
cout << "해당 문자열을 찾았습니다.";
}
else
{
cout << "해당 문자열을 찾지 못했습니다.";
}
[결과]
4
5
해당 문자열을 찾지 못했습니다.
(1) str1.compare(str_02) == 0 //str1과 str2이 같을 경우
(2) str1.compare(str_02) < 0 //str1이 str2보다 사전 편찬순으로 앞에 있을 경우
(3) str1.compare(str_02) > 0 //str1이 str2보다 사전 편찬순으로 뒤에 있을 경우
[예제}
string str1 = "rise";
string str2 = "river";
if (str1.compare(str2)==0)
{
cout << str1 << "이 " << str2 << "와 같습니다.";
}
else if (str1.compare(str2) < 0)
{
cout << str1 << "이 " << str2 << "보다 사전 편찬 순으로 앞에 있습니다.";
}
else
{
cout << str1 << "이 " << "보다 사전 편찬 순으로 뒤에 있습니다.";
}
[결과}
rise이 river보다 사전 편찬 순으로 앞에 있습니다.
[문법]
문자열.replace(대체할문자열시작위치, 대체할문자열길이, 새로운문자열);
//전달된 시작 위치부터 문자열의 길이만큼을 제거한 후, 새로운 문자열을 삽입함
[예제]
string str1 = "C++ is very nice!";
string str2 = "nice";
string str3 = "awesome";
string::size_type index = str1.find(str2);
if (index != string::npos)
{
str1.replace(index, str2.length(), str3);
}
cout << str1;
[결과]
C++ is very awesome!
💡 replace() 메소드를 사용하기 전에 우선 find() 메소드를 사용하여 해당 문자열이 존재하는지를 파악하는 것이 좋다.
[예제]
string str = "C++ Programming";
cout << "문자열 str의 length는 " << str.length() << "입니다." << endl;
cout << "문자열 str의 capacity는 " << str.capacity() << "입니다." << endl;
cout << "문자열 str의 max_size는 " << str.max_size() << "입니다.";
[결과]
문자열 str의 length는 15입니다.
문자열 str의 capacity는 15입니다.
문자열 str의 max_size는 4611686018427387897입니다.
http://www.tcpschool.com/cpp/cpp_string_stringMethod
https://ponyozzang.tistory.com/677 (현재 접속 불가)
https://learn.microsoft.com/ko-kr/cpp/standard-library/string-functions?view=msvc-170
(글 작성에 참고한 첫 출처대로 메소드로 적을지, 함수로 바꿔 쓸지 고민하다가 MS 공식 문서에 함수라고 적혀 있길래 함수로 수정했다..)