일상 코딩
[C++/CPP] 17.04. 문자 접근과 배열로 전환 본문
728x90
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string my_str("abcdefg");
{
cout << my_str[0] << endl;
cout << my_str[3] << endl;
my_str[3] = 'Z';
cout << my_str << endl;
}
{
try
{
// []: 예외처리 안됨( 속도가 느려져서 )
// .at() : 예외 처리됨.
// my_str[100] = 'X'; // 속도가 중요할때
my_str.at(100) = 'X'; // 안정성이 중요할때
cout << my_str << endl;
}
catch (std::exception &e)
{
cout << "catch: " << e.what() << endl;
}
}
{
// c-style 문자
string my_str("abcdefg");
cout << my_str.c_str() << endl;
// c_str() == data() 거의 같은 함수임.
// const char *arr = my_str.c_str(); // 뒤에 null 문자를 더함.
const char *arr = my_str.data();
cout << (int)arr[6] << endl;
cout << (int)arr[7] << endl;
}
{
string my_str("abcdefg");
char buf[20];
my_str.copy(buf, 5, 1); // copy(변수, 집어넣을 문자 개수, offset)
buf[5] = '\0'; // null character
cout << buf << endl;
}
return 0;
}
728x90
'C++ > 따배C++ 17강 String' 카테고리의 다른 글
[C++/CPP] 17.05 string 대입, 교환, 덧붙이기, 삽입 (0) | 2021.12.16 |
---|---|
[C++/CPP] 17.03. std::string 길이와 용량, length and capacity (0) | 2021.12.16 |
[C++/CPP] 17.02 std::String 여러 생성자들과 형변환, various constructor and typecasting (0) | 2021.12.15 |