More actions
imported>qa22ahj No edit summary |
(Repair batch-0003 pages from live compare) |
||
| Line 23: | Line 23: | ||
=== 문자열 입력 받기 === | === 문자열 입력 받기 === | ||
* string 클래스라고 해서 공백을 무시할수 있는것은 아니다. 학교 교재에 보면 getline()과 get()이 나온다. string 변수로 입력을 받는다 해도 cin >>을 사용하면 공백을 입력 받을수 없다. 따라서 getline() 써줘야 한다. | * string 클래스라고 해서 공백을 무시할수 있는것은 아니다. 학교 교재에 보면 getline()과 get()이 나온다. string 변수로 입력을 받는다 해도 cin >>을 사용하면 공백을 입력 받을수 없다. 따라서 getline() 써줘야 한다. | ||
[ | [[[Lovely]boy^_^]]는 이걸 망각하고 1시간동안 삽질을 한 경험이 있다. 이럴때는 일단 char input[255]정도로 큰 배열 잡아 놓은 다음 string으로 변환 시켜준다. 예제를 보자. | ||
#include <iostream> | #include <iostream> | ||
| Line 31: | Line 31: | ||
int main() | int main() | ||
{ | { | ||
char input | char input[255]; | ||
cin.getline(input, 255); | cin.getline(input, 255); | ||
| Line 56: | Line 56: | ||
---- | ---- | ||
[[STL]] | [[STL]] | ||
Latest revision as of 00:29, 27 March 2026
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 을 추구했기 때문에, 사용법이 비슷하다.
Tips
=== 문자열 입력 받기 ===
- string 클래스라고 해서 공백을 무시할수 있는것은 아니다. 학교 교재에 보면 getline()과 get()이 나온다. string 변수로 입력을 받는다 해도 cin >>을 사용하면 공백을 입력 받을수 없다. 따라서 getline() 써줘야 한다.
[Lovely]boy^_^는 이걸 망각하고 1시간동안 삽질을 한 경험이 있다. 이럴때는 일단 char input[255]정도로 큰 배열 잡아 놓은 다음 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;
}