여기서 우리는 두 문자열을 비교하지만 문자열의 문자의 대소문자를 무시하는 strcmp(문자열 비교) 함수를 만들어야 합니다. 이 함수는 string1
문제를 이해하기 위해 예를 들어보겠습니다.
입력
string1 = “Hello” , string2 = “hello”
출력
0
문자열을 비교하는 동안 대소문자를 무시하는 우리 고유의 strcmp 함수를 만들려면. i번째 인덱스의 문자가 동일한 경우(예:string1[i] ==string2[i]) 두 문자열의 모든 문자를 반복합니다. 계속합니다. string1[i]> string2[i]이면 1을 반환하고 string1[i]
여기서는 경우를 무시해야 하므로 A와 will은 동일한 것으로 간주됩니다. 문자의 ASCII 값을 사용하면 a =97의 ASCII는 A =65의 ASCII와 같습니다.
솔루션 구현을 보여주는 프로그램,
예시
#include <iostream> using namespace std; int strcmpFunc(string string1, string string2){ int i; for (i = 0; string1[i] && string2[i]; ++i){ if (string1[i] == string2[i] || (string1[i] ^ 32) == string2[i]) continue; else break; } if (string1[i] == string2[i]) return 0; if ((string1[i] | 32) < (string2[i] | 32)) return -1; return 1; } int main(){ cout<<"Compareing string using our strcmp function :\n"; cout<<"Result: "<<strcmpFunc("HELLO", "hello")<<endl; cout<<"Result: "<<strcmpFunc("", "Hello")<<endl; cout<<"Result: "<<strcmpFunc("Tutorials", "Pint")<<endl; cout<<"Result: "<<strcmpFunc("afdadsa", "rewf")<<endl; cout<<"Result: "<<strcmpFunc("tutorialspoint", "TUTORIALSpoint")<<endl; return 0; }
출력
Compareing string using our strcmp function − Result: 0 Result: -1 Result: 1 Result: -1 Result: 0