U E D R , A S I H C RSS

STL/string

1. string

  • 잘λͺ»μ“°λ©΄ λ©”λͺ¨λ¦¬ λˆ„μˆ˜μ˜ 주범이 λ˜λŠ” char* λŒ€μ‹ μœΌλ‘œ μ“Έμˆ˜ μžˆλ‹€.
  • κ·Έλƒ₯ "인수 천재" λΌλŠ” λ¬Έμžμ—΄μ„ λ§Œλ“€κ³  μ‹ΆμœΌλ©΄
    string a("인수 천재") 
       
    이러면 λœλ‹€.
  • λ¬Έμžμ—΄ 볡사
    string b = a
    
  • λ¬Έμžμ—΄ κΈΈμ΄λŠ” b.size() 둜 μ•Œμˆ˜ μžˆλ‹€.
  • aλ¬Έμžμ—΄μ˜ 4-7λ²ˆμ§ΈκΉŒμ§€μ˜ 문자λ₯Ό λ¬Έμžμ—΄λ‘œ λ–Όμ–΄λ‚΄κΈ°
    string name("1234567890");
    cout << name<<endl;
    string c(name.begin() + 3, name.begin() + 7) ;
    cout << c;
    
  • new - char* 둜 λ§Œλ“  λ¬Έμžμ—΄μ€ ν”„λ‘œκ·Έλž¨ μ‚¬μš©ν›„ delete ν•΄μ€˜μ•Ό λ˜μ§€λ§Œ, string은 μ†Œλ©Έμžμ—μ„œ μ•Œμ•„μ„œ ν•΄μ€λ‹€. 생산성 증가!
  • STL은 이용 λ°©λ²•μ˜ general 을 μΆ”κ΅¬ν–ˆκΈ° λ•Œλ¬Έμ—, μ‚¬μš©λ²•μ΄ λΉ„μŠ·ν•˜λ‹€.

2. Tips

2.1. λ¬Έμžμ—΄ μž…λ ₯ λ°›κΈ°

  • string 클래슀라고 ν•΄μ„œ 곡백을 λ¬΄μ‹œν• μˆ˜ μžˆλŠ”κ²ƒμ€ μ•„λ‹ˆλ‹€. 학ꡐ κ΅μž¬μ— 보면 getline()κ³Ό get()이 λ‚˜μ˜¨λ‹€. string λ³€μˆ˜λ‘œ μž…λ ₯을 λ°›λŠ”λ‹€ 해도 cin >>을 μ‚¬μš©ν•˜λ©΄ 곡백을 μž…λ ₯ λ°›μ„μˆ˜ μ—†λ‹€. λ”°λΌμ„œ getline() μ¨μ€˜μ•Ό ν•œλ‹€.
    ["Lovelyboy^_^"]λŠ” 이걸 λ§κ°ν•˜κ³  1μ‹œκ°„λ™μ•ˆ μ‚½μ§ˆμ„ ν•œ κ²½ν—˜μ΄ μžˆλ‹€. μ΄λŸ΄λ•ŒλŠ” 일단 char input255μ •λ„λ‘œ 큰 λ°°μ—΄ μž‘μ•„ 놓은 λ‹€μŒ string으둜 λ³€ν™˜ μ‹œμΌœμ€λ‹€. 예제λ₯Ό 보자.

#include <iostream>
#include <string>
using namespace std;

int main()
{	
	char input[255];
	cin.getline(input, 255);	

	cout << string(input);

	return 0;
}

  • string을 μ΄μš©ν•΄μ„œ 직접 μž…λ ₯ 받을렀면 μ΄λ ‡κ²Œ ν• μˆ˜ μžˆλ‹€.

#include <iostream>
#include <string>
using namespace std;

int main()
{	
         string input;
	getline(cin, input);	

	cout << input;

	return 0;
}


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:58
Processing time 0.0105 sec