可能重复:
C++ 中不区分大小写的字符串比较
我已经为 C++ 编写了一些代码来比较两个字符串是否相等。我想要的是校对。我计划在未来将它用于更多的程序,所以这个功能做好它的工作很重要。这个功能是否看起来像一个可重复使用、便携等的功能?有没有更“最新”的方法来做到这一点?我使用了 ac 库,但这是一个 c++ 程序,这是禁忌吗?
谢谢,JH。
//function to compare two strings regardless of case
//-- returns true if the two strings are equal
//-- returns false if
// --the strings are unequal
// --one of the strings is longer than 255 chars
bool isEqual(string str1, string str2){
if(str1.length()!=str2.length()) //the strings are different lengths,
return false; //they can't be equal
if((str1.length()>255) || (str2.length()>255))
return false;
char * cstr1 = new char [str1.length()+1];
strcpy (cstr1, str1.c_str());
char * cstr2 = new char [str2.length()+1];
strcpy (cstr2, str2.c_str());
for(int i=0; i<str1.length()+1; i++){
if(toupper(cstr1[i]) != toupper(cstr2[i]))
return false;
}
return true;
}