【PAT乙级】1109 擅长C (20 分) C++实现;附测试点说明

题目

https://pintia.cn/problem-sets/994805260223102976/problems/1478634605024231424

1109 擅长C (20 分)
当你被面试官要求用 C 写一个“Hello World”时,有本事像下图显示的那样写一个出来吗?
在这里插入图片描述

输入格式:
输入首先给出 26 个英文大写字母 A-Z,每个字母用一个 7×5 的、由 C 和 . 组成的矩阵构成。最后在一行中给出一个句子,以回车结束。句子是由若干个单词(每个包含不超过 10 个连续的大写英文字母)组成的,单词间以任何非大写英文字母分隔。

题目保证至少给出一个单词。

输出格式:
对每个单词,将其每个字母用矩阵形式在一行中输出,字母间有一列空格分隔。单词的首尾不得有多余空格。

相邻的两个单词间必须有一空行分隔。输出的首尾不得有多余空行。

思路

虽然输入很长,但不要被吓到。
首先输入26个英文字母的图像表示,即2675的char型矩阵
之后输入一个字符串,表示句子
首先肯定是创建一个三维数组 string[26][7] (相当于char[26][7][5]),输入26个英文字符
之后读入一个字符串,我们需要对这个字符串分解出每个单词

因此需要写一个split函数分隔字符串,分界点是非大写字母
之后按要求输出每个单词即可

代码

#include<bits/stdc++.h>
using namespace std;
string alpha[26][7];
string str;
// 分隔字符串
vector<string> split() {
   
    vector<string> ans;
    string tmp = "";
    for(int i = 0;i<str
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值