外星代码

今天比赛做了一道很简单的基础语法水题,因为好久没用结构体+string类型,竟错了两遍,警醒自己应温故知新。

题目描述

小明发现了一个外星文明,作为翻译官,拿到了一份外星球语言与外星语言的单词对照表,现在有个外星球的句子,需要翻译成外星语言发送给外星人。

输入

第一行两个整数n和m,表示单词对照表单词对数和需翻译句子的单词数
随后n行,每行两个字符串,第一个表示外星球的单词,第二个表示与其对应外星语言的单词
最后一行有m个单词,表示需翻译的外星球语言的句子,每个单词之间有一个空格
1<=n,m<=10000

输出

一行表示翻译成外星语言的句子,每个单词之间一个空格,若从对照表中查不到某单词,则输出与单词相同长度的 “*”
每个单词长度<15

样例输入

5 4
abc asd
hjk dfgr
sd dengd
koi miu
ssd hhd
hjk aaa ssd abc

样例输出

dfgr *** hhd asd

解题思路(个人)

注意:(都是一些简单的语法问题)
用一个结构体存储字符串,用c++中string类型声明字符串,这里需要注意的是结构体成员的输入和调用方式,以及string类型中一些常用函数的使用。

AC代码

#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
const int N=10010;
struct qq
{
    string a[N];
    string b[N];
    string s[N];
}qq;

int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>qq.a[i]>>qq.b[i];  //注意结构体成员的输入方式
    for(int i=1;i<=m;i++)
        cin>>qq.s[i];
    for(int i=1;i<=m;i++)
    {
        int t=0;
        int f=qq.s[i].size();   //size()函数可计算字符串中字母个数
        for(int j=1;j<=n;j++)
        {
            if(qq.s[i]==qq.a[j])  //string类型字符串可直接进行比较
            {
                t=1;
                cout<<qq.b[j];
                break;
            }
        }
        if(t==0)
        {
            for(int i=1;i<=f;i++)
            {
                cout<<"*";
            }
        }
        cout<<" ";
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值