반응형
STRING을 사용하는 여러가지 방법
#include <iostream>
#include <string>
using namespace std;
int main() {
string s0;
string s1("hello");
string s2 = "hello";
string s3 = string("hello");
string s4("hello");
string s5 = { "hello" };
string s6 = s5;
string s7(s5);
cout << s1 << endl;
cout << s2 << endl;
cout << s3 << endl;
cout << s4 << endl;
cout << s5 << endl;
cout << s6 << endl;
cout << s7 << endl;
return 0;
}
이렇게 중괄호를 써도 되고 다양한 방법으로 string을 생성할 수 있습니다. s0은 empty string입니다.
c++ string은 하나의 독립적인 개체로 보기 때문에 복사가 가능합니다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1, str2, str3;
cin >> str1 >> str2;
str3 = str1;
cout << "str3 : " << str3 << endl;
str3 = str1 + " " + str2;
cout << "str1 + str2 : " << str3 << endl;
int len = str3.length();
cout << "str3.length() : " << len << endl;
string str4 = "hello";
if (str1 == str4)
cout << "Same" << endl;
else if (str1 < str4)
cout << "Str1 first" << endl;
else
cout << "Str2 first" << endl;
return 0;
}
string은 위의 코드 예제와 같이 복사, 합치기, 길이, 비교, 부등호 < > 로 사용할 수 있습니다.
str.length() 같은 것으로 길이를 셀 수 있습니다.
C++에서 단어를 입력받아 저장하기
#include <iostream>
#include <string>
using namespace std;
const int MAXWORDS = 100;
int main() {
string words[MAXWORDS];
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> words[i];
}
for (int i = 0; i < n; i++) {
cout << words[i] << endl;
}
return 0;
}
C언어보다 훨씬 더 간단하게 가능합니다. 마치 정수의 데이터를 다룰 때와 비슷하게 string 데이터를 다룰 수 있습니다. 이런 면에서 C++은 C언어보다 훨씬 더 사용이 편한다는 것을 알 수 있습니다.
C++에서 라인 단위로 입력받기 : getline
C에서는 fgets를 사용을 했지만 C++에서는 라인 단위로 입력을 받기 위해서 getline을 사용합니다.
#include <iostream>
#include <string>
using namespace std;
const int MAXWORDS = 100;
int main() {
string line;
while (getline(cin, line))
cout << line << ":" << line.length() << endl;
return 0;
}
getline 함수로 한 라인을 읽습니다.
getline 함수는 꼭 라인 전체를 읽는 것은 아니고 지정한 문자가 나올 때까지 읽어 주는 함수입니다. 예를들어 탭문자('\t')가 나올 때까지 읽으려면
string str;
getline(cin, str, '\t');
이렇게 해주면 됩니다.
그래서 실제로 getline(cin, text)는 getline(cin, text, '\n')과 동일합니다.
반응형
'IT 프로그래밍 > 자료구조' 카테고리의 다른 글
vector에서 원소의 삽입과 삭제 (1) | 2024.09.20 |
---|---|
[C언어] 주소록 프로그램 strtok에 대한 설명 (0) | 2024.09.06 |
[C언어] 문자열 string, fgets 설명 (0) | 2024.09.06 |
텐서플로우와 Linear regression, Cost function (1) | 2024.09.03 |
동적 메모리 할당과 동적 객체 생성 (0) | 2024.09.02 |