[C++] C++μ΄λ? string ν΄λμ€
π‘ C++
1. μ μ°¨ μ§ν₯μ μ΄λ©° ꡬ쑰μ νλ‘κ·Έλλ° μΈμ΄
2. κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄
3. μΌλ°ν νλ‘κ·Έλλ° μΈμ΄
π‘ λ€μμ€νμ΄μ€ namespace
: μμλ 곡κ°
ex) using namespace std; // stdλΌλ λ€μμ€νμ΄μ€μ μν μ μλ€μ std::λ₯Ό λΆμ΄μ§ μμλ μ¬μ©ν μ μμ
π‘ νμ€ μ μΆλ ₯
: #include <iostream>
β cout : μΆλ ₯
std::cout << "Hello";
β cin : μ λ ₯(ν λ¨μ΄ λ¨μ)
std::cin >> μ μ₯ν λ³μ;
π‘ ν¬μΈνΈ 리ν°λ΄ μμ
: nullptr
: nullptr == 0 => true
π‘ λ²μ μ§μ μ°μ°μ(::)
1. ::μλ³μ
2. ν΄λμ€μ΄λ¦::μλ³μ
3. λ€μμ€νμ΄μ€::μλ³μ
4. μ΄κ±°μ²΄::μλ³μ
π‘ λ©€λ² ν¬μΈν° μ°μ°μ
: λ©€λ² ν¬μΈν° μ°μ°μλ₯Ό μ΄μ©ν΄ ν΄λμ€μ λ©€λ²λ₯Ό κ°λ¦¬ν€λ ν¬μΈν° μ μ.
1. ν΄λμ€νμ μκ°μ²΄.*λ©€λ²μ΄λ¦
2. ν΄λμ€νμ κ°μ²΄μν¬μΈν°->*λ©€λ²μ΄λ¦
π‘ typeid μ°μ°μ
: κ°μ²΄μ νμ μ κ΄ν μ 보 νμΈ
: typeid(ννμ)
π‘ ν¬μΈν°
: λ©λͺ¨λ¦¬μ μ£Όμκ°μ μ μ₯νλ λ³μ, ν¬μΈν° λ³μ
β μ£Όμ μ°μ°μ(&)
: &λ³μλͺ
: ν΄λΉ λ³μμ μ£Όμκ°μ λ°ν, λ²μ§ μ°μ°μ
β μ°Έμ‘° μ°μ°μ(*)
: ν¬μΈν°λͺ /μ£Όμ μμ μ¬μ©, ν¬μΈν°μ μ§μ λ μ£Όμμ μ μ₯λμ΄ μλ κ°μ λ°ν
π‘ λμ λ©λͺ¨λ¦¬ ν λΉ
: λ° νμμ λ©λͺ¨λ¦¬λ₯Ό ν λΉλ°λκ²
β λ°μ΄ν° μμ, μ€ν μμμ ν λΉλλ λ©λͺ¨λ¦¬μ ν¬κΈ°λ μ»΄νμΌ νμμ 미리 κ²°μ λλ€.
<-> ν μμ : νλ‘κ·Έλ¨μ μ€ν(λ° νμ) λμ€ μ¬μ©μκ° μ§μ κ²°μ
β malloc(), free() μ λΉμ·
β new μ°μ°μ
: λ©λͺ¨λ¦¬ 곡κ°μ κ°μ²΄λ₯Ό μν λ©λͺ¨λ¦¬λ₯Ό ν λΉ λ°μ
+ newλ‘ ν λΉ λ°μ λ©λͺ¨λ¦¬λ ν΄λΉ ν¬μΈν°λ‘λ§ μ κ·Ό ν μ μλ€
: νμ * ν¬μΈν°λͺ = new νμ (λ©λͺ¨λ¦¬ μ’ λ₯ μ§μ );
β delete μ°μ°μ
: λμ μΌλ‘ ν λΉλ°μ λ©λͺ¨λ¦¬ λ€μ λ°ν
: delete ν¬μΈν°λͺ ;
π‘ λ¬Έμμ΄, string ν΄λμ€
β μ΄μ CμΈμ΄μ λ¬Έμμ΄μ μ λ ₯ν λ¬Έμμ΄μ κΈΈμ΄λ₯Ό 미리 μκ³ μμ΄μΌνλ€.
: #include <string>
: λ€μμ€νμ΄μ€ std
string str1; // λ¬Έμμ΄μ μ μΈ
str1 = "C++ Programming"; // λ¬Έμμ΄μ μ΄κΈ°ν
string str2 = "C++"; // λ¬Έμμ΄μ μ μΈκ³Ό λμμ μ΄κΈ°ν
: λ¬Έμμ΄μ κΈΈμ΄ μλμΌλ‘ μ²λ¦¬.
: λ°°μ΄μ²λΌ μΈλ±μ€λ₯Ό ν΅ν΄ λ€λ£° μ μλ€.
: λ¬Έμμ΄κΈΈμ΄ == λ³μλͺ .length()
β getline(cin, λ³μλͺ ) : λ¬Έμμ΄ ν ν(line) λ°κΈ°
π‘ string λ©μλ
length() | λ¬Έμμ΄ κΈΈμ΄ λ°ν | find() | νΉμ λ¬Έμμ΄μ μ°Ύμ, μμ μμΉ λ°ν if) μ°Ύμ§ λͺ»νλ©΄ string::npos λ°ν |
size() | κ°μ²΄κ° μ€μ μ¬μ©νλ λ©λͺ¨λ¦¬ ν¬κΈ° λ°ν |
replace() | νΉμ λ¬Έμμ΄ μ°Ύμ, κ·Έ λ¬Έμμ΄μ λ€λ₯Έ λ¬Έμμ΄λ‘ λ체 |
append() | νλμ λ¬Έμμ΄μ λμ λ€λ₯Έ λ¬Έμμ΄ μΆκ° |
capacity() | λ¬Έμμ΄μ΄ μ¬λμ
λ°μ§ μκ³ , μ μ₯ν μ μλ μ΅λ λ¬Έμμ΄ κΈΈμ΄ λ°ν |
compare() | λ λ¬Έμμ΄ κ°μ λ΄μ© λΉκ΅ -> bool λ°ν | max_size() | μ΅λ λ¬Έμμ΄μ κΈΈμ΄ |
// append()
λ¬Έμμ΄.append(μΆκ°ν λ¬Έμμ΄); // μΆκ°ν λ¬Έμμ΄μ 맨 λμ μΆκ°ν¨.
λ¬Έμμ΄.append(μΆκ°ν λ¬Έμμ΄, μμμμΉ, κ°μ); // μΆκ°ν λ¬Έμμ΄μ μμ μμΉλΆν° κ°μλ§νΌλ§ 맨 λμ μΆκ°ν¨.
λ¬Έμμ΄.append(κ°μ, μΆκ°ν λ¬Έμ); // μΆκ°ν λ¬Έμλ₯Ό κ°μλ§νΌ 맨 λμ μΆκ°ν¨
// compare()
str1.compare(str_02) == 0 // str1κ³Ό str2μ΄ κ°μ κ²½μ°
str1.compare(str_02) < 0 // str1μ΄ str2λ³΄λ€ μ¬μ νΈμ°¬μμΌλ‘ μμ μμ κ²½μ°
str1.compare(str_02) > 0 // str1μ΄ str2λ³΄λ€ μ¬μ νΈμ°¬μμΌλ‘ λ€μ μμ κ²½μ°
// replace()
λ¬Έμμ΄.replace(λ체ν λ¬Έμμ΄μμμμμΉ, λ체ν λ¬Έμμ΄μκΈΈμ΄, μλ‘μ΄λ¬Έμμ΄);