1. 문제
4. find() 함수의 원형은 다음과 같다. 문자열 a에서 문자 c를 찾아, 문자 c가 있는 공간에 대한 참조를 리턴한다. 만일 문자 c를 찾을 수 없다면 success 참조 매개 변수에 false를 설정한다. 물론 찾게 되면 success에 true를 설정한다.
2. 결과
3. 코드
#include <iostream>
using namespace std;
char& find(char a[], char c, bool& success);
char& find(char a[], char c, bool& success) {
for(int i=0; i< sizeof(a); i++)
if( a[i] == c ) {
success = true;
return a[i];
}
return *a;
}
int main() {
char s[] = "Mike";
bool b = false;
char& loc = find(s, 'M', b);
if( b == false) {
cout << "M을 발견할 수 없다" << endl;
return 0;
}
loc = 'm';
cout << s << endl;
}
4. 설명
함수 find(s, 'M', b)는 문자열 s에서 'M'을 찾아서 존재한다면 false로 초기화 되어있는 success를 success = true;로 초기화 합니다.
또한, 참조에 의한 호출로서 문자 하나를 return 합니다.
return한 문자는 char& loc에 저장을 하였고 참조에 의한 호출이기 때문에 loc값을 바꾸면 함수 find()에서 return했던 값도 loc값에 따라 바꾸어집니다.
'명품 C++ programming' 카테고리의 다른 글
명품 C++ programming 실습문제 5장 6번 (0) | 2019.04.07 |
---|---|
명품 C++ programming 실습문제 5장 5번 (0) | 2019.04.07 |
명품 C++ programming 실습문제 5장 3번 (0) | 2019.04.07 |
명품 C++ programming 실습문제 5장 2번 (0) | 2019.04.07 |
명품 C++ programming 실습문제 5장 1번 (1) | 2019.04.07 |