본문 바로가기

System Programmings/C++

[C++] C++ 문자열 스타일

반응형
#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;
}
반응형