【发布时间】:2021-12-23 02:26:24
【问题描述】:
这是我的功能代码。我想检查给定的两个字符串是否大小写相同
example
String1 = PEN
String2 = PENCIL
输出应该是SAME
example 2
String1 = PEN
String2 = pencil
输出应该不一样 这是 C 程序代码。但不确定它是否正常工作,有没有其他方法可以解决这个问题,就像任何关键字一样检查相同的大小写。或任何其他解决方法
int areSameCase(char str[],char str1[])
{
int i=0,j=0;
while(str[i]!='\0' && str1[j]!='\0')
{
if((str[i]>='a' && str[i]<='z') == (str1[j]>='a' && str1[j]<='z'))
{
return 1;
}
else if((str[i]>='A' && str[i]<='Z') == (str1[j]>='A' && str1[j]<='Z'))
{
return 1;
}
else
{
return 0;
}
i++;
j++;
}
}
【问题讨论】:
-
你没有增加循环计数器。
-
您的循环在检查第一个字符后无条件返回。它无法正确检查超过一个字符的字符串。
-
如果字符不同,你就知道它不是同一种情况吗?
-
如果您将测试分解为单独的函数,例如
int isLowerCase(char c)和int isUpperCase(char c),这项任务将会变得很多。然后您可以从areSameCase()调用这些函数 -
是否应该将
"PEN"和"PENcil"报告为“相同情况”?