题目描述
判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。本评测系统基于linux,不支持函数strupr、strlwr
。
示例
【输入】
a A bb BB ccc CCC Aa BBbb CCCccc
【输出】
YES
【想法】
1、“删除”空格——由于数组删除数据相对不容易实现,只需要读到空格的时候跳过即可
2、大小写判断——利用ASCII码大小关系
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int i = 0, j = 0, lena, lenb;
char a[1000], b[1000];
gets(a);
gets(b);
lena = strlen(a);
lenb = strlen(b);
while (i < lena || j < lenb) {
//一次读多个空格,并且保证在长度范围内
while (a[i] == ' ' && i < lena)
i++;
while (b[j] == ' ' && j < lenb)
j++;
//一次读一个空格,continu的使用
//if (a[n] == ' ') {
// n++;
// continue;
//}
//if (b[m] == ' ') {
// m++;
// continue;
//}
if (a[i] == b[j] || a[i] == b[j] + 32 || a[i] == b[j] - 32)
//大小写字母的ASCII码相差32
{
i++;
j++;
} else {
printf("NO");
return 0;
}//if
}//while
printf("YES");
return 0;
}