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값에 따라 바꾸어집니다.

 

+ Recent posts