반응형
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
string s="the flower of eden";
string d;
d=s;
cout << s << endl << d << endl;
cout << s.size() << endl << d.size() <<endl; //C의 strlen의 기능
d+=s; //C의 strcat의 기능
cout << d << endl;
if(s==d) //C의 strcmp의 기능
cout << "같다" <<endl;
else
cout << "틀리다" << endl;
cout << d.find("flower") << endl; //찾기 기능 -> c에서는 strstr()이 비슷한 일을 한다.
cout << d.substr(d.size()-4, 4) << endl; //substr(위치, 읽을 바이트)
char *c="둘리, 마이콜, 귀동이, 고길동, 깐따삐야!";
string cpp;
cpp=c; //C스타일의 문자열을 C++스타일 문자열로 형변환(복사)
cout << "C -> C++ 스타일로 변환 : "<< cpp << endl;
const char* cstyle=NULL;
cstyle=cpp.c_str(); //C++스타일 -> C스타일 문자열로 변환(C스타일로 읽기만 가능, 수정은 불가! -> 수정하려면 strcpy 사용)
cout << "수정 불가능한 C 스타일 : "<< cstyle << endl;
char* defaultC=new char [cpp.size()+1]; // +1 <- NULL 넣기 위해
strcpy(defaultC, cpp.c_str());
cout << "수정 가능한 C 스타일 : "<< defaultC << endl;
//C와 C++의 입력 차이
char cs[30]={0};
string cpps;
cin >> cs; //띄어쓰기 입력은 무효환 된다.
cin >> cpps;
cout << cs << endl << cpps << endl << "띄어쓰기 입력" <<endl;
//C와 C++의 띄어쓰기도 입력화
char css[30];
cin.getline(css, 30);
cin.clear(); //cin 실패값 지우기
getline(cin, cpps);
cout << css << endl << cpps << endl;
return 0;
}
반응형
'System Programmings > C++' 카테고리의 다른 글
[C++] typedef로 멤버 함수 포인터 사용 (0) | 2010.07.05 |
---|---|
[C++] typedef로 함수 포인터 사용 (0) | 2010.07.05 |
[C++] 클래스에서 static과 소멸자 역할 확인 (0) | 2010.07.05 |
[C++] 동적 할당 및 소멸자 사용 (얕은 복사의 문제점) (0) | 2010.07.05 |
[C++] 클래스 기본 구성 및 접근자 (0) | 2010.07.03 |