여기서 우리는 두 문자열을 비교하지만 문자열의 문자의 대소문자를 무시하는 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