728x90
반응형
#include <iostream>
#include <string>
using namespace std;
int main()
{
char charr1[20];
char charr2[20] = "jaguar";
string str1;
string str2 = "panther";
cout << "고양이과의 동물 한 종을 입력하십시오 : ";
cin >> charr1;
cout << "고양이과의 또 다른 동물 한 종을 입력하십시오 :";
cin >> str1;
cout << "아래 동물들은 모두 고양이과입니다. \n";
cout << charr1 << " " << charr2 << " " << str1 << " " << str2 << endl;
cout << charr2 << "에서 세 번째 글자: " << charr2[2] << endl;
cout << str2 << "에서 세 번째 글자: " << str2[2] << endl;
return 0;
}
- 문자배열을 대신하는 string클래스, 문자열을 하나의 데이터형으로
- string 객체는 단순한 변수로 선언한다
- 대입 가능
- 조각의 연산 가능
- sring str3;
- str3= str1+str2;
- str1 += str2;
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1 = "penguin";
string s2, s3;
cout << "string 객체를 string 객체에 대입할 수 있다. s2=s1 \n";
s2 = s1;
cout << "s1 :" << s1 << ", s2: " << s2 << endl;
cout << "string 객체에 C 스타일 문자열을 대입할 수 있다. \n";
cout << "s2 = \"buzzard\"\n"; //"를 입력하는 방법 \" ~\" 이용
s2 = "buzzard";
cout << "s2: " << s2 << endl;
cout << "string 객체들을 결합할 수 있다. s3=s1+s2 \n";
s3 = s1 + s2;
cout << "s3: " << s3 << endl;
cout << "string 객체들을 추가할 수 있다. \n";
s1 += s2;
cout << "s1+=s2 --> s1= " << s1 << endl;
s2 += " for a day";
cout << "s2 += \"for a day\" --> s2= " << s2 << endl;
return 0;
}
- string 객체의 편리함
- strcpy_s(charr1, charr2) : 복사
- strcat_s(charr1, charr2) : 추가
- str3=st1+str2;
- strcpy_s(charr3, charr1);
- strcat_s(charr3, charr2);
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
char charr1[20];
char charr2[20] = "jaguar";
string str1;
string str2 = "panther";
str1 = str2;
strcpy_s(charr1, charr2);
str1 += " paste";
strcat_s(charr1, "juice");
int len1 = str1.size();
int len2 = strlen(charr1);
cout << str1 << " 문자열에는" << len1 << "개의 문자가 들어 있다. \n";
cout << charr1 << " 문자열에는" << len2 << "개의 문자가 들어 있다. \n";
return 0;
}
->str1.size() : 객체.클래스메서드 형태
-> strlen() : C스타일 함수
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
char charr[20];
string str;
cout << "입력 이전에 charr에 있는 문자열의 길이 : " << strlen(charr) << endl;
cout << "입력 이전에 str에 있는 문자열의 길이 :" << str.size() << endl;
cout << "텍스트 한 행을 입력하십시오: \n";
cin.getline(charr, 20);
cout << "입력한 텍스트 : " << charr << endl;
cout << "또 다른 텍스트 한 행을 입력하시오 : \n";
getline(cin, str);
cout << "입력한 텍스트: " << str << endl;
cout << "입력 이후에 charr에 있는 문자열의 길이: " << strlen(charr) << endl;
cout << "입력 이후에 str에 있는 문자열의 길이 : " << str.size() << endl;
return 0;
}
-> 초기화되지 않은 배열의 내용은 정의되지 않는다.
-> strlen() 함수는 \0까지 바이트를 센다.
-> 초기화되지 않은 string 객체는 크기가 0이다
->cin.getline(charr, 20); : 한 행을 읽어 배열안에 넣는 코드 [클래스 메서드]
->getline(cin, str); : 한 행을 읽어 string 객체 안에 넣는 코드 [cin은 길이 지정자가 아니라 매개변수로 작동한다]
728x90
반응형
'Programming > C++ 2' 카테고리의 다른 글
[C++ 실습] 4장-07. 포인터와 메모리 해제 (0) | 2021.04.04 |
---|---|
[C++ 실습] 4장-04. 구조체 (0) | 2021.04.04 |
[C++ 실습] 4장-02. 문자열 (0) | 2021.04.04 |
[C++ 실습] 4장-01. 배열 (0) | 2021.04.04 |
[C++] 4장. 복합 데이터형 - (7) 포인터와 메모리 해제 (0) | 2021.03.31 |