Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //c++ 에서 StrEqual 구현하기
- /*
- 일단 int 형 C_StrEqual 함수를 만듭니다 그리고
- 인자를 const char*, const char*, bool 로 만들어줍니다
- */
- int C_StrEqual(const char* a, const char* b, bool CaseSensitive) {
- int i = -1;//문자를 반복하면 1나씩 비교해야하기 때문에 int 형 i 변수를 만들어줍니다
- int result = -1;//이거는 결과 값인데 -1 은 이 기능역할을 잘 충실 못한거고 1은 둘다 똑같은 문장이고 0은 똑같지 않는 문장
- //이거는 대문자 소문자 구분하는건데 만약 true면 구분하고 false 면 구분 안함
- if (CaseSensitive == true) {
- while (true) { //계속반복
- i++;//이거는 i 에서 1를 더한값을 i로 넣어라는 뜻 마치 i = i+1
- if (a[i] != '\0' || b[i] != '\0') { //만약에 i 자리에있는 a가 '0\' 한마디로 Null 문자가 아니면 실행시켜라 라는뜻 null 그냥 한마디로 없는 문자
- //만약 i 자리에있는 a 가 i 자리에있는 b 의 문자가 같으면 실행 시켜라 만약에 i 자리에있는 a가 Q고 i 자리에있는 b 가 Q 면 똑같으니깐 실행하게된다
- if (a[i] == b[i]) {
- //결과값은 1로 초기화함 한마디로 result 은 1이다 라는 뜻
- result = 1;
- }
- //만약에 i 자리에있는 a가 i 자리에있는 b의 문자가 같지 안으면 실행시켜라 뜻
- //대문자와 소문자의 숫자차이가 32 임
- //i자리에있는 a 와 i 자리에있는 b 를 뺴고 그값이 -32 와 같냐 혹은 i자리에있는 a 와 i 자리에있는 b 를 빼고 그값이 32와 같냐 그러면 실행시켜라 뜻
- //그리고 문자는 숫자로 되어 있는거 아시죠?
- else if ((a[i] - b[i]) == -32 || (a[i] - b[i]) == 32) {
- //설명했으니 패쓰
- result = 1;
- }
- //만약 이것도 아니면 실행시켜라 뜻
- else {
- //0 으로 반환해라 라는뜻
- return 0;
- }
- }
- //만약 i 자리에있는 a 가 널문자 혹은 i 자리에있는 b가 널문자이면
- //result을 반환해라
- else {
- return result;
- }
- }
- }
- //이건 설명했으니 패쓰
- //아그리고또 이거는 저거중에서 else if ((a[i] - b[i]) == -32 || (a[i] - b[i]) == 32) 뺀거기 때문에 설명할것이 딱히 없음
- if (CaseSensitive == false) {
- while (true) {
- i++;
- if (a[i] != '\0' || b[i] != '\0') {
- if (a[i] == b[i]) {
- result = 1;
- }
- else {
- return 0;
- }
- }
- else {
- return result;
- }
- }
- }
- //만약에 이것이 실행이 안됬다 그러면 그러면 result은 -1 이기 때문에 -1로 반환
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement