百练2743:字符串判等

来源:互联网 发布:win10网络不可用红叉 编辑:程序博客网 时间:2024/05/23 16:25

B:字符串判等

  • 查看
  • 提交
  • 统计
  • 提问
总时间限制: 
1000ms 
内存限制: 
65536kB
描述

判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。

输入
两行,每行包含一个字符串。
输出
若两个字符串相等,输出YES,否则输出NO。
样例输入
a A bb BB ccc CCCAa BBbb CCCccc
样例输出
YES

这道题是我想多了,其实用最原始、基本的方法就能做出来,只不过花费的空间大点,开四个数组。方法就是先把小写转成大写字母,然后分别字符串拷贝到缓存数组中,再用strcmp比较即可。我试图不用拷贝的方法,用while循环动态比较的方式,WA了好几次。。。机试时候还是求稳比较好啊,尽量用有把握的方法。

#include <cstdio>#include <cstring>using namespace std;char a[100];char b[100];char aa[100];char bb[100];int main(){    gets(a);    gets(b);    int len_a=strlen(a);    int len_b=strlen(b);    int i;    int cnta=0;    int cntb=0;    for(i=0;i<len_a;i++){        if(a[i]>='a'&&a[i]<='z'){            aa[cnta]=a[i]-32;            cnta++;        }        else if(a[i]==' ')            continue;        else{            aa[cnta]=a[i];            cnta++;        }    }    aa[cnta]='\0';    for(i=0;i<len_b;i++){        if(b[i]>='a'&&b[i]<='z'){            bb[cntb]=b[i]-32;            cntb++;        }        else if(b[i]==' ')            continue;        else{            bb[cntb]=b[i];            cntb++;        }    }    bb[cntb]='\0';    printf("%s\n",strcmp(aa,bb)==0?"YES":"NO");    return 0;}

************************

坚持,而不是打鸡血~


原创粉丝点击