字符串处理函数 strcmp(s1, s2) 可以比较两个字符串的大小,其字符的大小是以 ASCII 码表上的顺序决定。该函数首先将 s1 第一个字符值减去 s2 的第一个字符值,若差值为 0 则继续比较对应的下一个字母,若不为 0 则该差值就是函数的最终结果。
请按照该函数的实现原理,写出一个新的字符串比较函数 strcmp_nc(s1, s2),该函数的功能与 strcmp 类似,但不区分字符串中的大小写字母,例如:字符 a 和 字符 A 相等。
要求:实现过程中不得使用任何已有的关于字符和字符串处理的库函数。
#include<stdio.h>
int strcmp_nc(char *s1, char *s2)
{
while(*s1==*s2 || (*s1-*s2==32) || (*s2-*s1==32))
{
*s1++;
*s2++;
if(*s1 != '\0' && *s2 != '\0')
{
return 0;
}
}
return *s1 - *s2;
}
int main()
{
char *s1="Aa";
char *s2="b";
int result = strcmp_nc(s1,s2);
printf("%d",result);
}