Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. //c++ 에서 StrEqual 구현하기
  2. /*
  3. 일단 int 형 C_StrEqual 함수를 만듭니다 그리고
  4. 인자를 const char*, const char*, bool 로 만들어줍니다
  5. */
  6.  
  7. int C_StrEqual(const char* a, const char* b, bool CaseSensitive) {
  8.  
  9. int i = -1;//문자를 반복하면 1나씩 비교해야하기 때문에 int 형 i 변수를 만들어줍니다
  10. int result = -1;//이거는 결과 값인데 -1 은 이 기능역할을 잘 충실 못한거고 1은 둘다 똑같은 문장이고 0은 똑같지 않는 문장
  11. //이거는 대문자 소문자 구분하는건데 만약 true면 구분하고 false 면 구분 안함
  12. if (CaseSensitive == true) {
  13. while (true) { //계속반복
  14. i++;//이거는 i 에서 1를 더한값을 i로 넣어라는 뜻 마치 i = i+1
  15.  
  16. if (a[i] != '\0' || b[i] != '\0') { //만약에 i 자리에있는 a가 '0\' 한마디로 Null 문자가 아니면 실행시켜라 라는뜻 null 그냥 한마디로 없는 문자
  17. //만약 i 자리에있는 a 가 i 자리에있는 b 의 문자가 같으면 실행 시켜라 만약에 i 자리에있는 a가 Q고 i 자리에있는 b 가 Q 면 똑같으니깐 실행하게된다
  18. if (a[i] == b[i]) {
  19. //결과값은 1로 초기화함 한마디로 result 은 1이다 라는 뜻
  20. result = 1;
  21.  
  22. }
  23. //만약에 i 자리에있는 a가 i 자리에있는 b의 문자가 같지 안으면 실행시켜라 뜻
  24. //대문자와 소문자의 숫자차이가 32 임
  25. //i자리에있는 a 와 i 자리에있는 b 를 뺴고 그값이 -32 와 같냐 혹은 i자리에있는 a 와 i 자리에있는 b 를 빼고 그값이 32와 같냐 그러면 실행시켜라 뜻
  26. //그리고 문자는 숫자로 되어 있는거 아시죠?
  27. else if ((a[i] - b[i]) == -32 || (a[i] - b[i]) == 32) {
  28. //설명했으니 패쓰
  29. result = 1;
  30.  
  31. }
  32. //만약 이것도 아니면 실행시켜라 뜻
  33. else {
  34. //0 으로 반환해라 라는뜻
  35. return 0;
  36. }
  37. }
  38. //만약 i 자리에있는 a 가 널문자 혹은 i 자리에있는 b가 널문자이면
  39. //result을 반환해라
  40. else {
  41. return result;
  42. }
  43.  
  44. }
  45. }
  46. //이건 설명했으니 패쓰
  47. //아그리고또 이거는 저거중에서 else if ((a[i] - b[i]) == -32 || (a[i] - b[i]) == 32) 뺀거기 때문에 설명할것이 딱히 없음
  48. if (CaseSensitive == false) {
  49. while (true) {
  50. i++;
  51.  
  52. if (a[i] != '\0' || b[i] != '\0') {
  53. if (a[i] == b[i]) {
  54.  
  55. result = 1;
  56.  
  57. }
  58. else {
  59.  
  60. return 0;
  61.  
  62. }
  63. }
  64.  
  65. else {
  66. return result;
  67. }
  68.  
  69. }
  70. }
  71. //만약에 이것이 실행이 안됬다 그러면 그러면 result은 -1 이기 때문에 -1로 반환
  72. return result;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement