hdu 1075What Are You Talking About(字典树 用map 水过了。。。)

本文分享了在HDU上解决提交程序出现PE错误的方法,着重介绍了字符串输入函数(scanf, getchar, gets)的正确使用,并通过实例展示了如何处理字符串转换和查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚发现hdu 上这个题提交过 没过 然后发现PE 不知道为什么一直都PE。。。重新敲了一遍过了。。

水过的没啥好说的了 就是注意 读字符串 scanf  getchar  gets 几个函数的使用就ok了l

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
using namespace std;

int main()
{
    char s1[15],s2[15],str[3005];
    gets(s1);
    map<string,string> m;

    while(scanf("%s",s1))
    {
        if(strcmp(s1,"END")==0)
        break;
        scanf("%s",s2);
        m[string(s2)]=s1;
    }

    getchar();
    gets(str);
    while(gets(str))
    {
        if(strcmp(str,"END")==0) break;
        for(int i=0;str[i];++i)
        {
            if(str[i]<'a' || str[i]>'z')
            {
                printf("%c",str[i]);
                continue;
            }
            int j;
            for(j=0;str[i]>='a' && str[i]<='z' ;++i,++j)
            {
                s1[j]=str[i];
            }
            i--;
            s1[j]='\0';
            if(m.find(string(s1))!=m.end())
                printf("%s",m[string(s1)].c_str());
            else
                printf("%s",s1);
        }
        printf("\n");
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值