Notice
Recent Posts
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
관리 메뉴

이우의 개발일지

[C++] 문자열 비교 함수 만들기 본문

Coding/Algorithm

[C++] 문자열 비교 함수 만들기

공대이우 2024. 5. 5. 18:42

문자열 비교 함수 만들기

내가 지정한 문자와 입력한 문자가 같으면 종료, 다르면 계속하는 함수 

#include <string>
#include <iostream>
#include<random>
#include <vector>

using namespace std;
const int kMaxstr = 100; // 전역변수 설정 

bool IsEqual(const char st1[], const char str2[]) {

	for (int i = 0; i < sizeof(st1); i++) {
		if (st1[i] == str2[i]) {

		}
		else if (st1[i] == '\0') return true;
		else if (st1[i] != str2[i]) {
			return false;
		}
		
	}

	return true;
}
int main() {
	const char str1[kMaxstr] = "stop";

	char str2[100];

	while (1) {
		
		cin >> str2;
		if (IsEqual(str1, str2)) {
			cout << "종료합니다 " << endl;
			break;
		}
		cout << "계속합니다 " << endl;
	}

}

 

※주의할 점은 bool IsEqual 함수에서 if(st1[i] == str2[i])는 어차피 같으면 넘어가니깐, 굳이 안넣어줘도되는데 처음에 했을 때 안됐던 이유가

else if (st1[i] == '\0') return true;
else if (st1[i] != str2[i]) {
 return false;
}

이 두개의 else if의 위치를 바꿔서 넣으면 st1[i]가 이미 Null 임에도 불구하고 계속 함수를 비교하게 됨. 

따라서 else if(st1[i] == '\0')을 먼저 넣어줘서 끝나는 표시가 먼저 나와야 됨. 

반응형