이우의 개발일지
[C++] 문자열 비교 함수 만들기 본문
문자열 비교 함수 만들기
내가 지정한 문자와 입력한 문자가 같으면 종료, 다르면 계속하는 함수
#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')을 먼저 넣어줘서 끝나는 표시가 먼저 나와야 됨.
반응형
'Coding > Algorithm' 카테고리의 다른 글
[백준/C++] 11724번 연결 요소의 개수 / BFS 풀이 (0) | 2024.07.17 |
---|---|
[백준] BFS 유기농 배추 (0) | 2024.07.17 |
[STL] sort 정렬 함수 사용 방법/ 사용자 정의 비교 함수 사용/오름차순 내림차순 코드 (0) | 2024.05.21 |
[C++] 동적할당 (0) | 2024.05.06 |
[C++] 포인터 /포인터 정의/포인터 배열 (0) | 2024.05.05 |