这是我的问题:
写一个函数名compareStrings(char * str1, char * str1, int i=0)
,它返回决定是否
两个收到的字符串是否相等。第三个参数决定是否采取案例
比较字符串时的敏感性:0表示区分大小写,否则区分大小写。
示例:
compareStrings( “apple”, “Apple” )
返回1 compareStrings( “apple a day keeps the doctor away”, “apple are good for health” )
返回-1 我已经完成了这段代码,但并没有比较所有的Ascii。根据我的说法,我必须把所有的Ascii支票都用掉,但这会很长 请告诉我关于这个问题的任何其他逻辑。
#include<iostream>
using namespace std;
int compareStrings(char * str1, char * str2);
int main()
{
char str1[]="apple";
char str2[]="Apple";
int ret;
ret=compareStrings(str1,str2);
if(ret==0)
cout<<"Both strings are equal"<<endl;
else if(ret==1)
cout<<"string 1 is bigger than 2"<<endl;
else
cout<<"string 1 is lower than 2"<<endl;
return 0;
}
int compareStrings(char * str1, char * str2)
{
for(int i=0;i<20;i++)
{
if(str1[i]==str2[i])
return 0;
else if(str1[i] >= 'A' && str1[i] <= 'Z' &&str2[i] <='a' && str2[i]<='z')
return -1;
else if(str2[i] >= 'A' && str2[i] <= 'Z' &&str1[i] <='a' && str1[i]<='z')
return 1;
}
}
答案 0 :(得分:3)
如图所示,代码存在多个问题。我忽略了你没有使用C ++ std::string
类型的事实,尽管这是另一个问题。
isalpha()
,isupper()
,islower()
宏(前缀为std::
<cctype>
或等效函数。7
而另一个字符串包含9
,则您不会认识到,您应该做出决定。const char *
个参数。等
您需要仔细重新考虑您的代码。忽略不区分大小写,直到区分大小写的比较正常工作。然后你可以修改它来处理不区分大小写的比较。