#include<iostream>#include<string>usingnamespace std;
classString {//string 클래스 선언
string s, back; // 입력받을 문자열과 거꾸로 문자열이 들어갈 문자열변수 선언public:
String() { //생성자
cout << "뒤집을 문자열을 입력하세요>> ";
getline(cin, s, '\n'); //띄어쓰기를 허용한 s 문자열 입력, Enter키를 누를시 종료int length = s.length();// 길이를 정수형 변수로 선언, 문자열 길이 저장.for (int i = 0; i <= length; i++) {//문자열 길이만큼 다음 행위 반복
string first = s.substr(length - i, 1);//입력받은 문자열의 제일 끝 문자를 저장
back += first;//제일끝 문자를 back 문자열에 저장, 위 과정 반복.
}
cout << back;//거꾸로 저장된 문자 출력
}
};
intmain(){
String word;//객체 생성, 생성자 함수 실행
}
#include<iostream>#include<string>usingnamespace std;
classPlayer {// Player 클래스 선언
string name; //이름 Private화public:
voidgetname(); //사람의 이름을 가져옴string peoplename(){ //사람 이름을 반환return name;
}
};
voidPlayer::getname(){ //이름 입력 함수
cout << "참가자의 이름을 입력하세요. 빈칸 없이>>";
cin >> name; //name에 이름 입력
}
classWordGame {//WordGame 클래스 선언int length; //단어의 길이 변수 선언
string firWord; //첫번째 단어 선언
string nextWord; //다음 단어 선언public:
WordGame() { length = 0; firWord = "아버지"; }; //생성자 함수 boolequal(); //단어가 같은지 비교voidgetword(); //단어를 받는 함수voidchangeword(); //단어를 변경하는 함수
};
voidWordGame::getword(){ //단어를 입력하고 저장하는 함수
cin >> nextWord; // 입력된 단어 저장
}
boolWordGame::equal(){ //단어 비교
length = firWord.length(); //문자열 길이에 받은 문자열의 길이를 저장if (firWord[length - 2] == nextWord[0] && firWord[length - 1] == nextWord[1]) { //두 단어를 비교, 한글은 2바이트이기 떄문에 2바이트를 비교해줌.changeword(); //마지막글자와 입력된 단어의 첫번째 글자가 같다면 마지막으로 입력된 단어를 변경return1; //변경됨
}
else {
return0; //다름
}
}
voidWordGame::changeword(){ //단어를 변경해주는 함수
firWord = nextWord;//첫번째 단어와 이어진 단어 변경
}
intmain(){
int num = 0; //사람 수
cout << "끝말 잇기 게임을 시작합니다." << endl;
cout << "게임에 참가하는 인원은 몇 명입니까?";
cin >> num; //사람 수 입력받음
Player* p = new Player[num]; //사람객체를 입력받은 사람 수 만큼 생성for (int i = 0; i < num; i++) {//객체에 이름 입력
p[i].getname();
}
cout << "시작 단어는 아버지입니다." << endl;
int j = 0;
WordGame Game; //게임 객체 선언while (1) { //break가 나올때까지 반복
cout << p[j].peoplename() << ">>"; //이름 입력
Game.getword(); //단어를 입력받음if (Game.equal() == 0) { //끝말잇기 규칙 적용
cout << p[j].peoplename() << "이(가) 졌습니다.";
break;
}
j++; //4번을 넘는지 확인하기 위한 변수if (j >= num)
j = 0; //횟수가4를 넘으면 처음으로 돌아감
}
delete[] p;//new 연산자 반환
}
#include<iostream>usingnamespace std;
intGCD(int a, int b){//최대공약수를 구하는 함수int tmp;//변수 선언while (b) {//반복루프
tmp = a; //tmp에 a값 대입 1.
a = b; //a에 b의 값 대입 2.
b = tmp % b;//tmp를 b로 나눈 나머지 를 b에 대입 3. (다시 1로)
}
return a; //a 반환
}
voidLCD(int& a, int& b, int& lcd){//call by reference 참조변수선언
lcd = (a * b / GCD(a, b)); //최소공배수를 구하는 공식
}
intmain(){
int a = 0, b = 0, gcd = 0, lcd = 0;//최대공약수 최소공배수 변수 초기화
cout << "양의 정수 a를 입력하세요>> ";
cin >> a;//a 입력
cout << "양의 정수 b를 입력하세요>> ";
cin >> b;//b입력
gcd = GCD(a, b); //lvalue에 오른쪽 값을 입력LCD(a, b,lcd); //함수선언 (참조 변수로 선언해줘야 맞는 값 얻을 수 있으므로)
cout << "정수 " << a << ", " << b << "의 최대공약수는 " << gcd << ", " << "최소공배수는 " << lcd << "입니다. ";
}
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstring>usingnamespace std;
classString {//String Class선언int len_;//정수형 변수 선언char* str_;//문자열 포인터 선언, privatepublic:
String(constchar* str) {//char* 선언하기 위해 const 붙여줌
len_ = strlen(str);//문자열 길이 입력
str_ = newchar[len_ + 1]; //new 연산자 이용, 기존 문자열+1개의 문자열 strcpy(str_, str); //문자열 복사
}
voidPrint(){ //print 함수
cout << str_ << endl; //복사한 문자열 출력delete[] str_;// delete연산자 사용, new 연산자 반환
}
};
voidShowString(String str){//showstring 함수
str.Print();//매개변수(문자열)객체에 대한 print함수 사용
}
intmain(){
String str1 = "C++ programming";//str1은 C++ ProgrammingShowString(str1);//C++programming을 String class에 적용 후 연계과정 진행
}