GitHub

字符串相等 impossible 1480

题目描述

两个长度不超过80的字符串,串中包括大写、小写和空格字符,去掉空格并忽略大小写后,判断两个字符串是否相等。

输入描述

第1行输入是测试数据的组数n,每组测试数据占两行,第1行是第一个字符串s1,第2行是第二个字符串s2

输出描述

如果两个字符串相等,则输出YES,否则输出NO

样例输入

2
a A bb BB ccc CCC
Aa BBbb CCCccc
a      dfadf     fasdf
adasddfsfsaf

样例输出

YES

NO

思想:

注意cin对空格的要求,需要getchar() 或者直接用getline()

注意字符串用数组表示时末尾的   '\0'

字符串函数strcmp(),相等的时候输出0

 1 #include<iostream>
 2 #include<string.h>
 3 #include<string>
 4 using namespace std;
 5 int main(){
 6     int n,i;
 7     cin>>n;
 8     getchar();
 9     for(i=0;i<n;i++){
10         int l1,l2,j,k;
11         char a[2][80],b[2][80],p[80];
12         for(j=0;j<2;j++){
13             gets(p);
14             strcpy(a[j],p);
15         }
16         l1=strlen(a[0]);
17         l2=strlen(a[1]);
18         k=0;
19         for(j=0;j<l1;j++){
20             if(a[0][j]>='A'&&a[0][j]<='Z'){
21                 a[0][j]=a[0][j]+32;
22             }
23         }
24         for(j=0;j<l2;j++){
25             if(a[1][j]>='A'&&a[1][j]<='Z'){
26                 a[1][j]=a[1][j]+32;
27             }
28         }
29           for(j=0;j<l1;j++){
30             if(a[0][j]!=' '){
31                 b[0][k++]=a[0][j];
32             }
33         }
34           b[0][k]='\0';
35         k=0;
36           for(j=0;j<l2;j++){
37             if(a[1][j]!=' '){
38                 b[1][k++]=a[1][j];
39             }
40         }
41           b[1][k]='\0';
42           if(strcmp(b[0],b[1])==0){
43               printf("YES\n");
44         }else{
45             printf("NO\n");
46         }    
47     }
48     return 0;
49 }

 

posted @ 2019-06-25 18:19  繁华似锦觅安宁  阅读(294)  评论(0编辑  收藏  举报