⼀⽉24⽇新⽣冬季练习赛解题报告B.字符串判等
B.字符串判等
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 86 (44 users)Total Accepted: 37 (37 users)Special Judge: No
Description
给定两个由⼤⼩写字母和空格组成的字符串 s1和 s2。判断压缩掉空格、并忽略⼤⼩写后,这两个字符串是否相
等。
Input
多组测试数据,处理到⽂件结束。每组数据包含两个字符串s1,s2,长度⼤于1,⼩于等于100.
Output
如果两个字符串相等,输出yes;否则输出no
Sample Input
God like
gOdl iKE
字符串长度的正确表示legendary
le gandaRY
Sample Output
yes
no
Hint
⽔题⼀枚
我的思路是:把⽆论⼤写还是⼩写都转化成数字
看杭电思路
先删去空格,然后统⼀⼤⼩写(统⼀成⼤写还是⼩写随你)
最后再是字符串⽐较strcmp
所以有必要学习⼀下strcmp
所在头⽂件:
功能:⽐较字符串s1和s2。
⼀般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回为负数注意不是-1
当s1==s2时,返回值= 0
当s1>s2时,返回正数注意不是1
即:两个串⾃左向右逐个字符相⽐(按ASCII值⼤⼩相⽐较),直到出现不同的字符或遇'\0'为⽌。
# include <stdio.h>
# include <string.h>
int main ()
{
char s1[105],s2[105];
while(gets(s1))
{
gets(s2);
int l1=0,l2=0,i;
for(i=0; s1[i]; i++)
{
if(s1[i]!=' ')
{
if(s1[i]>='A'&&s1[i]<='Z') s1[l1++]=s1[i]+32;                else s1[l1++]=s1[i];
}
}
s1[l1]='\0';
for(i=0; s2[i]; i++)
{
if(s2[i]!=' ')
{
if(s2[i]>='A'&&s2[i]<='Z') s2[l2++]=s2[i]+32;                else s2[l2++]=s2[i];
}
}
s2[l2]='\0';
if(strcmp(s1,s2)==0) printf("yes\n");
else printf("no\n");
}
}
代码中黄⾊部分是值得注意的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。