您的位置:首页 > 其它

字符串 HDU 2054 A == B ?

2016-02-05 10:25 309 查看
原题链接请点这里

思路:字符串问题,判断两个字符串是否相等。如0001.00与1,又比如1.10与1.20

PS:为什么数组开小了结果是Time Limit Exceeded


代码

#include<stdio.h>
#include<string.h>
char str1[100024],str2[100024];
void fun(char str[])
{
char *p=str;
while(*p=='0')//处理前面无用的0
p++;
//char *p="student",则*(p+1)='t';
strcpy(str,p);//复制后字符串str前面就没有无用的0了
if(strchr(str,'.'))//若有小数点,处理小数点后面无用的0
{
int len=strlen(str);
char *q=str+len-1;
while(*q=='0')//处理后面无用的0
*(q--)=0;
if(*q=='.')//如果小数点后面所有的数都去掉了,还要清理掉小数点
*q=0;
}
/*
strchr()
查找字符串中首次出现某字符的位置,找到则返回第一次出现的位置,否则返回NULL
如ptr=strcpy("student",'d');则ptr="dent"
*/
}
int main( )
{
while(~scanf("%s%s",str1,str2))
{
fun(str1);
fun(str2);
puts(strcmp(str1, str2)? "NO":"YES");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: