[C++]명품 C++ 프로그래밍 실습문제 6장 6번
[C++]명품 C++ programming 실습문제 6장 6번
명품 C++ 프로그래밍실습문제/연습문제 /C++
#include <iostream>
#include <string>
using namespace std;
class ArrayUtility2{
public:
static int *concat(int *s1,int *s2, int size) //static 멤버 함수에서 non-static멤버 변수를 접근할수없다는 것을 명심!
{
int *p;
int i;
p = new int [10];
for(i=0; i<5 ;i++){
p[i] = s1[i];
}
i=0;
for(int j=5; j<10 ;j++,i++){
p[j] = s2[i];
}
return p;
}//문자열 두개 받고 합친 문자열 리턴
static int* remove(int *s1,int *s2, int size, int &retSize)
{
int count = 0;
int duplicate =0 ; //중복 안된상태
int *tmp = new int [size];
for(int i=0; i<size ; i++){
for(int j=0; j<size ; j++){
if(s1[i]==s2[j]){
duplicate =1;
break;
}
else if(duplicate == 0) { // flag를 세우면 간단하게 구현이 가능하다.
tmp[count++] = s1[i];
break;
}
}
}
if(count==0) return NULL;
retSize =count;
cout << "\n배열 x[]에서 y[]를 뺀 결과를 출력한다. 개수는 " << retSize << endl;
for(int i=0; i < count ; i++){
cout << tmp[i] << " ";
}
return tmp;
}//문자열 두개빼기
};
int main() {
int x[5];
int y[5];
int retsize;
cout << "정수 5개를 입력하라. 배열 x에 삽입한다>>";
for(int i=0;i<5;i++){
cin>> x[i];
}
cout << "정수 5개를 입력하라. 배열 y에 삽입한다>>";
for(int i=0;i<5;i++){
cin>> y[i];
}
int *p= ArrayUtility2::concat(x, y, 10); //배열의 시작주소를 넘겨줬음.
cout << "합친 정수 배열을 출력한다." <<endl;
for(int i=0; i<10 ;i++){
cout << p[i] << " ";
}
int *q= ArrayUtility2::remove(x, y, 5, retsize);
return 0;
}
'C++' 카테고리의 다른 글
[C++] 명품 C++ 프로그래밍 실습문제 6장 8번 (0) | 2023.01.10 |
---|---|
[C++] 명품 C++ 프로그래밍 실습문제 6장 7번 (0) | 2023.01.10 |
[C++] 명품 C++ 프로그래밍 실습문제 6장 4번 (0) | 2023.01.10 |
[C++]명품 C++ 프로그래밍 실습문제 6장 3번 (1) | 2023.01.10 |
[C++] 명품 C++ 프로그래밍 실습문제 6장 2번 (0) | 2023.01.07 |