문제 :
find() 함수의 원형은 다음과 같다. 문자열 a에서 문자 c를 찾아, 문자 c가 있는 공간에 대한 참조를 리턴한다.
만일 문자 c를 찾을 수 없다면 success 참조 매개 변수에 false를 설정한다.
물론 찾게 되면 success에 true를 설정한다.
1
|
char& find(char a[], char c, bool& success);
|
다음 main()이 잘 실행되도록 find()를 작성하라.
1
2
3
4
5
6
7
8
9
10
11
|
int main() {
char s[] = "Mike";
bool b = false;
char& loc = find(s, 'M', b);
if(b == false) {
cout << "M을 발견할 수 없다" << endl;
return 0;
}
loc = 'm'; // 'M' 위치에 'm' 기록
cout << s << endl; // "mike"가 출력됨
}
|
실행 결과 :
목적 및 힌트 :
참조에 의한 호출과 참조를 리턴하는 함수 작성
코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include<iostream>
using namespace std;
char& find(char a[], char c, bool& success){
int len = sizeof(a);
for(int i=0; i<len; i++){
if(a[i]==c) {
success = true;
return a[i];
}
}
}
int main() {
char s[] = "Mike";
bool b = false;
char& loc = find(s, 'M', b);
if(b == false) {
cout << "M을 발견할 수 없다" << endl;
return 0;
}
loc = 'm'; // 'M' 위치에 'm' 기록
cout << s << endl; // "mike"가 출력됨
}
|
설명 :
참조에 의한 호출 뿐 아니라 참조를 리턴하는 함수를 작성 하였습니다.
원하는 문자를 찾을 시 그 위치의 참조를 리턴해 참조변수 loc에 넣고 나중에 그 값을 변경 하였습니다.
'C++ programming' 카테고리의 다른 글
명품 C++ programming 실습 문제 5장 8번 (9) | 2020.03.05 |
---|---|
명품 C++ programming 실습 문제 5장 7번 (1) | 2020.03.05 |
명품 C++ programming 실습 문제 5장 5번 (1) | 2020.03.05 |
명품 C++ programming 실습 문제 5장 4번 (1) | 2020.03.05 |
명품 C++ programming 실습 문제 5장 3번 (1) | 2020.03.05 |